我正在使用JComboBox
在我的applet中显示String[]
。现在我需要在我的项目中在前一个面板中执行某些操作后填充comboBox。
以下是我写的代码:
JComboBox comboBox = new JComboBox(model);
comboBox.setMaximumRowCount(100);
comboBox.setEditable(true);
comboBox.setBounds(142, 196, 277, 20);
如何根据我在上一个小组中执行的操作做出相应的反应?
答案 0 :(得分:1)
当您更改“模型”时,组合框视图应自动更新(因为标准或写得很好的ComboBoxModel会通知视图它需要更改)。
E.g。使“model”为DefaultComboBoxModel类型,然后在执行该“其他窗格上的操作”时 - 确保您的代码可以访问“model”,并进行更改。说到这可以直接访问:
actionPerformed(...){ // action from other pane
... // some logic
otherPane.model.removeAllElements();
otherPan.model.addElement(...)
}
然而,更好的设计不那么直接,例如您的操作可以触发您自己的事件(例如“productsAddedToMyStore”),并且窗格可以监听它然后更新模型。这减少了组件之间的耦合。