带线性渐变的Java Swing哑光边框?
我尝试了下面的例子来应用线性渐变:^{
它工作得很好,但我想把渐变色应用到Java Swing哑光边框中。我试过这个:
javax.swing.BorderFactory.createMatteBorder(1, 50, 1, 50, color)
但这只适用于一种类型的Color
,而不是GradientPaint
我们都知道,GradientPaint
包含两种完全混合的颜色,如上面链接的示例所示。那么,这个案例的替代答案是什么呢
你可以在下面搜索框中键入要查询的问题!
我尝试了下面的例子来应用线性渐变:^{
它工作得很好,但我想把渐变色应用到Java Swing哑光边框中。我试过这个:
javax.swing.BorderFactory.createMatteBorder(1, 50, 1, 50, color)
但这只适用于一种类型的Color
,而不是GradientPaint
我们都知道,GradientPaint
包含两种完全混合的颜色,如上面链接的示例所示。那么,这个案例的替代答案是什么呢
# 1 楼答案
使用新的MatteBorder(int, int, int, int, javax.swing.Icon)怎么样
# 2 楼答案
对于这种特殊情况,您需要创建自己的边界
下面是渐变边框类的一个示例:
当然,您可以指定任何其他渐变方向、颜色e.t.c。您也可以将它们的初始化放入构造函数(如果需要的话)。要使用它,您只需设置border(在任何JComponent后继者中):
基本上,你可以用任何颜色/动画/形状e.t.c.来创建任何你喜欢的边框
顺便说一下,-isborder不透明()方法应该返回true,如果您想创建半透明边框(例如使用半透明颜色、圆角形状等),否则您将不得不处理组件重新绘制问题