У меня возникли трудности с рисованием разделителя JSplitPane с помощью вызова UIManager.put(...). Это просто не работает. Я использую внешний вид «Металл», и это изменение должно произойти после того, как графический интерфейс уже создан. Все мои другие операции 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()):
Вышеприведенное является лишь примером того, что я пытаюсь сделать. Любая идея, почему это не работает? Еще раз всем спасибо за помощь!