JComboBoxがあり、レイアウトに関するほとんどすべてが変更されています。私はポップアップ、矢印ボタン、背景色などの選択色を変更しました。最後の残りの部分は、私が望む方法を見ていない、ポップアップの境界線の色(内側のJList)です。JComboBoxのインナーポップアップ(JList)の境界線の色を変更します。
私のコンボボックスは、以下のようになります。
あなたが見ることができるように、それは全体のレイアウトに一致していない、黒の境界線を持っています。私はそれを上の国境で見える青色に変えたいと思います。
私はいくつかの調査をしましたが、解決策はありませんでした。最も近い解決策はpostでした。しかし、それは動作しませんでした。 、私はその境界線を変更するには、別の方法を作成し、
public static void setSelectionColorOfComboBox(JComboBox<String> comboBox)
{
Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup) child;
JList list = popup.getList();
list.setBorder(new LineBorder(ColorPalette.LIGHT_BLUE, 1));
list.setSelectionBackground(ColorPalette.LIGHT_BLUE);
list.setSelectionForeground(Color.WHITE);
list.setFocusable(false);
}
が何かを欠場していないことを確認する:
はseleciton色の変化とともに、私はすでに国境は次のように色を変更しようとしました上記からリンクされている記事によると:
public static void setBorderColorOfComboBoxPopup(JComboBox<String> comboBox)
{
Object child = comboBox.getAccessibleContext().getAccessibleChild(0);
BasicComboPopup popup = (BasicComboPopup) child;
JList list = popup.getList();
list.setBorder(new LineBorder(ColorPalette.LIGHT_BLUE));
}
しかし、これはどちらか動作しませんでした。誰かが私のためにそれらの一般的な方法がうまくいかない理由を知っていますか、誰かが境界色を変える別のアプローチを少なくとも知っていますか?
現在、私は、JListの周りにスクロールペインのようなものがあると考えています。可能であれば、私がそれにアクセスして境界線を設定できるかどうかについていくつかの調査を行います。
はい、ありがとうございます。数分前、私はその解決策にも来ました。 :)私はそれを最良の答えとしてマークします。 – KJaeg