将JcomboBox中的Object组件添加到文本区域

时间:2013-09-26 17:24:13

标签: java swing jcombobox

你好我有一个内部有对象的JComboBox。这个对象是包含name,idnr等的人物对象,每个对象都显示在这个JComboBox中。

当我选择其中一个对象时,我希望此对象的几个属性显示在它旁边的textarea中。

我现在所做的是

overzicht = textarea
personenList is the JcomboBox

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

但是我怎样才能在这个区域附加我想要的每个组件? (假设我到现在为止这样做)

P.S并非每个组件都是字符串!

1 个答案:

答案 0 :(得分:1)

您需要编写自己的ListCellRenderer以在组合框中呈现人物。您需要编写项侦听器以侦听组合框上的选择更改事件。根据组合框中的选择,您可以获取相应的人员并在文本区域中设置相应的文本。

有关JCombobox的更多信息,请访问此link

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类型的Person实例变量。