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()):
上記は、私がやろうとしていることのほんの一例です。なぜそれが機能しないのですか?繰り返しになりますが、ご協力いただきありがとうございます。