你好我有一个内部有对象的JComboBox。这个对象是包含name,idnr等的人物对象,每个对象都显示在这个JComboBox中。
当我选择其中一个对象时,我希望此对象的几个属性显示在它旁边的textarea中。
我现在所做的是
overzicht = textarea
personenList is the JcomboBox
if(event.getSource() == personenList) {
overzicht.append();
}
但是我怎样才能在这个区域附加我想要的每个组件? (假设我到现在为止这样做)
P.S并非每个组件都是字符串!
答案 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
实例变量。