0

您好,我有一个 JComboBox,里面有对象。此对象是包含名称、idnr 等的人员对象,并且每个对象都显示在此 JComboBox 中。

当我选择其中一个对象时,我希望该对象的几个属性显示在它旁边的文本区域中。

我现在做的是

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,并且面板还应该包含selectedPersontype 的实例变量Person

于 2013-09-26T17:53:41.350 回答