2

ここに問題があります: 3 つ以上の jComboBox (すべて同じアイテム) を相互に接続して、jComboBox で 1 つのアイテムを選択すると、そのアイテムが他のすべての jComboBox で消えるようにする必要があります。具体例: ポーカー ゲームが終了しました。ここで、プレイヤーの場所を保存する必要があります。プレーヤーのプロファイルが取り込まれた jComboBox (場所を表す) があり、jComboBox 全体で 1 つのプロファイルのみを選択できるようにしたいと考えています。私は自分で何かを試して、ここまで来ました。ご覧のとおり、まったく役に立たない...

in MyItemListener:    
    if (jComboBox1 == evt.getSource())
    {   
        if (jComboBox1.getSelectedIndex() > 0)
        {
            jComboBox2.removeItem(jComboBox1.getSelectedItem());
            jComboBox3.removeItem(jComboBox1.getSelectedItem());
        }    
    }
    if (jComboBox2== evt.getSource())
    {   
        if (jComboBox2.getSelectedIndex() > 0)
        {
            jComboBox1.removeItem(jComboBox2.getSelectedItem());
            jComboBox3.removeItem(jComboBox2.getSelectedItem());
        }
    }
    if (jComboBox3== evt.getSource())
    {   
        if (jComboBox3.getSelectedIndex() > 0)
        {
            jComboBox1.removeItem(jComboBox3.getSelectedItem());
            jComboBox2.removeItem(jComboBox3.getSelectedItem());
        }
    }
4

3 に答える 3

1

このから、の選択を使用して、combo1に表示するいくつかのモデルのどれを決定するかについて、いくつかのアイデアが得られる場合がありcombo2ます。

于 2012-10-19T12:00:03.100 に答える
1

各コンボボックスに を追加するitemListenerと、コンボボックス 1 から項目を選択するとリスナーがトリガーされ、選択した値を取得できます。そこから、他のコンボボックスから同じアイテムを削除できます。

于 2012-10-19T06:20:31.013 に答える
0

すべてのコンボボックスを認識するカスタム コンボボックス モデルを紹介します。モデル項目には、それが選択されているコンボボックスへの参照が必要です (参照はもちろん null の可能性があります)。

次に、親コンボボックスを持つラッパー モデルを作成します。getSize() および getElementAt() は、ソース モデル要素の参照をラッパー モデルの親参照と比較する必要があります。同じ場合は、要素をスキップします。

于 2012-10-19T06:18:03.127 に答える