0

こんにちは、オブジェクトが入った JComboBox があります。このオブジェクトは、名前、idnr などを含む人物オブジェクトであり、すべてのオブジェクトがこの JComboBox に表示されます。

オブジェクトの 1 つを選択すると、このオブジェクトのいくつかのプロパティがその横のテキストエリアに表示されます。

私が今していることは

overzicht = textarea
personenList is the JcomboBox

if(event.getSource() == personenList) {
     overzicht.append();
}

しかし、このような領域に必要なすべてのコンポーネントを追加するにはどうすればよいでしょうか? (私が今までそれを正しくやっていると仮定して)

PS すべてのコンポーネントが文字列であるとは限りません!

4

1 に答える 1

1

コンボ ボックスに人物を表示するには、独自のListCellRendererを作成する必要があります。コンボ ボックスの選択変更イベントをリッスンするには、アイテム リスナーを作成する必要があります。コンボ ボックスでの選択に基づいて、対応する人物を取得し、適切なテキストをテキスト領域に設定できます。

JCombobox の詳細については、このリンクにアクセスしてください。

class ItemChangeListener implements ItemListener{
    @Override
    public void itemStateChanged(ItemEvent event) {
       if (event.getStateChange() == ItemEvent.SELECTED) {
          Object item = event.getItem();
          // do something with object
          if(item instanceof Person) {
            this.selectedPerson = (Person) item;
            // textArea.setText(person.toString());
          } else {
            this.selectedPerson = null;
          }
       }
    }       
}

この「ItemChangeListener」は、JComboBox と TextArea の両方を含むパネルの内部クラスである必要があり、パネルにselectedPersonは type のインスタンス変数も含まれている必要がありますPerson

于 2013-09-26T17:53:41.350 に答える