5

既存の JComboBox オブジェクトがあります。内部メソッドを使用して、そのプロパティの多くを変更できます。ただし、ポップアップの外観、特にポップアップの背景色をカスタマイズする同様の方法は見つかりませんでした。既存のオブジェクトがあるので、専用のクラスを作成するのではなく、既存のメソッド/プロパティを使用したいと考えています。これは可能ですか?

注:この質問は、上記のリンクされた質問と同じではありません(この質問にはすでに回答があると誤って述べています):その質問は、選択された項目の bgcolor (コンボボックスの編集ボックス内)について尋ねました。popup boxの bgcolorについて質問です。

4

3 に答える 3

4

ユージナーが言ったように、カスタムを使用することListCellRendererは間違いなくこれを行う正しい方法です. を拡張するクラスを作成するだけですDefaultListCellRenderer。このデフォルトのレンダラーは拡張JLabelされているため、これ以上簡単に理解することはできません! に電話をかけるだけですsetBackground()

JComboBox combo = new JComboBox(new String[] { "A", "B", "C", "D" });
combo.setRenderer(new DefaultListCellRenderer() {
    public void paint(Graphics g) {
        setBackground(Color.YELLOW);
        setForeground(Color.RED);
        super.paint(g);
    }
});
于 2010-12-10T11:18:25.310 に答える
1

カスタム コンボボックス レンダラーを作成する必要があります。詳細はこちら: http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer

于 2010-11-12T16:12:06.030 に答える
0

やってみました:

comboBox.setBackground(color);
于 2010-11-12T09:06:52.893 に答える