我对 Java Swing 和 LAF 有疑问。我正在使用 JGoodies,并尝试增加焦点区域边框的厚度。我通过 UIDefault 尝试过,但没有这样的选项。边框的例子你能告诉我如何设置边框吗?
我看到了这篇文章:Change the color of the Java Swing Component Focus indicator but没有解决我的问题。
我对 Java Swing 和 LAF 有疑问。我正在使用 JGoodies,并尝试增加焦点区域边框的厚度。我通过 UIDefault 尝试过,但没有这样的选项。边框的例子你能告诉我如何设置边框吗?
我看到了这篇文章:Change the color of the Java Swing Component Focus indicator but没有解决我的问题。
这种风格取决于L&F,是否支持Table.border
礼节或Table.scrollPaneBorder
.
在某些情况下,此属性Table.scrollPaneBorder
就足够了,但没有规则可以将表格包裹在滚动窗格包裹表格中。换句话说,您可以拥有一个没有滚动面板的表格。
如果你有一个没有滚动面板的表格,问题可以从 LookAndFeel 解决,如果你的实际 L&f 没有这个支持,解决方案是多种的,例如:
在 property 中插入一个 Border Table.border
,例如:
UiManager.put("Table.border", new BorderUIResources(YOUR_BORDER));
您需要将边框包裹在 BorderUIResource 中,因为如果您在 APP 中实现了开关 L6f,则 Swing 不会在没有 UIResource 接口的情况下删除该属性。
public class MaterialTableUI extends BasicTableUI {
public static ComponentUI createUI (JComponent c) {
return new MaterialTableUI();
}
@Override
public void installUI (JComponent c) {
super.installUI (c);
table.setBorder(UIManager.getBorder("Table.border"));
}
}
如果表格从滚动窗格中展开,则此答案概述了存在的所有可能解决方案。其实礼节Table.scrollPaneBorder
应该做的很好
设置边框
UIManager.put("Table.border", BorderFactory.createLineBorder(MaterialColors.COSMO_BLACK, 5));