Java SplitPane 分隔线的金属外观和感觉 UIManager 画家
Java metal look and feel UIManager painter for the SplitPane divider
我在使用 UIManager.put(...) 调用绘制 JSplitPane 分隔线时遇到了一些困难。它只是不工作。我使用的是 "Metal" 外观,并且必须在创建 GUI 之后进行此更改。我的所有其他 UIManager.put(...) 操作似乎都有效,但仅适用于颜色键项目。当一切都说完了,我也使用 SwingUtilities.updateComponentTreeUI(getRootPane()) 。我的代码示例如下。我想知道是否有人建议让我的画家工作。感谢大家的宝贵时间和帮助!
UIManager.put("SplitPane:SplitPaneDivider[Enabled+Vertical].foregroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Enabled].backgroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Enabled].foregroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Focused].backgroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
SwingUtilities.updateComponentTreeUI(getRootPane()):
以上只是我尝试执行的示例。知道为什么它不起作用吗?再次感谢大家的帮助!
这些是 Nimbus LAF
而非 Metal LAF
的属性,因此它们将不起作用。
要查看 Metal LAF
属性,请查看 UIManager Defaults,它将显示您可能能够更改的 UIManager 属性。
我在使用 UIManager.put(...) 调用绘制 JSplitPane 分隔线时遇到了一些困难。它只是不工作。我使用的是 "Metal" 外观,并且必须在创建 GUI 之后进行此更改。我的所有其他 UIManager.put(...) 操作似乎都有效,但仅适用于颜色键项目。当一切都说完了,我也使用 SwingUtilities.updateComponentTreeUI(getRootPane()) 。我的代码示例如下。我想知道是否有人建议让我的画家工作。感谢大家的宝贵时间和帮助!
UIManager.put("SplitPane:SplitPaneDivider[Enabled+Vertical].foregroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Enabled].backgroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Enabled].foregroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
UIManager.put("SplitPane:SplitPaneDivider[Focused].backgroundPainter", new Painter() {
@Override
public void paint(Graphics2D g, Object object, int width, int height) {
g.setColor(new Color(15, 15, 15));
g.fillRect(0, 0, width, height);
}
});
SwingUtilities.updateComponentTreeUI(getRootPane()):
以上只是我尝试执行的示例。知道为什么它不起作用吗?再次感谢大家的帮助!
这些是 Nimbus LAF
而非 Metal LAF
的属性,因此它们将不起作用。
要查看 Metal LAF
属性,请查看 UIManager Defaults,它将显示您可能能够更改的 UIManager 属性。