Java “我可以创建”吗;复杂的;渐变以实现swing(x)组件上的阴影
我想在我的JComponent周围,特别是JTextField周围创建阴影效果(因为我使用了SwingXAPI,所以jxtfield) 我已经知道SwingX中的Java “我可以创建”吗;复杂的;渐变以实现swing(x)组件上的阴影,java,swing,gradient,java-2d,swingx,Java,Swing,Gradient,Java 2d,Swingx,我想在我的JComponent周围,特别是JTextField周围创建阴影效果(因为我使用了SwingXAPI,所以jxtfield) 我已经知道SwingX中的DropShadowBorder类,但这并不是我想要实现的。我决定自己用圆角矩形和渐变来做 我的想法是创建一个圆角矩形,对其应用渐变,然后在该矩形顶部绘制具有给定偏移量的组件,以创建阴影效果 问题是我只知道GradientPaint类允许我指定渐变的起点和终点。除非我错了,否则我想我无法达到这样的效果,这种梯度,我想我需要一个从中心开始
DropShadowBorder
类,但这并不是我想要实现的。我决定自己用圆角矩形和渐变来做
我的想法是创建一个圆角矩形,对其应用渐变,然后在该矩形顶部绘制具有给定偏移量的组件,以创建阴影效果
问题是我只知道GradientPaint类允许我指定渐变的起点和终点。除非我错了,否则我想我无法达到这样的效果,这种梯度,我想我需要一个从中心开始,然后向边缘渐变的梯度。有没有一种方法可以用实际的API实现这样的渐变,还是我需要自己编写
谢谢
编辑:是要创建一个如下所示的文本字段:
底部的阴影比左右两侧的阴影更重要。如果需要径向渐变,有一个:RadialGradientPaint (在此处指定中心点和半径)
顺便说一句,DropShadowBorder有什么问题?(它与您想要的非常相似,您可以随时获取源代码并对其进行修改)要完全实现您想要的,没有简单的方法 要创建这种阴影的精确效果,您必须执行以下几项操作:
我已经看到了代码,我不喜欢它在不够灵活的地方制作,因为我希望在盒子的不同侧面有不同的阴影强度。这就是修改部分的作用。为每一面增加不同的强度似乎是一个简单的改变。你也可以看看SwingX中的ShadowRenderer类,我会通读一遍,除了出色的工作之外,他对渐变做了很多工作。还有一些基于paintBorder或Border的阴影效果代码