我想知道如何检查触发itemStateChanged的对象。
我们说我有一个复选框和一个下拉列表。两者都连接到同一个itemStateChanged。在那里,我想首先确定哪个对象被更改,然后根据对象执行我的代码。
我该怎么做?我在想这个:
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == JComboBox) {
// Do code
}
if(e.getSource() == JDropDown) {
// Some other code
}
}
但是这显然不起作用,因为JDropDown和JCheckBox是对象,而不是变量。
答案 0 :(得分:1)
如果您想为所有JCheckBox执行相同的操作,并且对GUI中的所有JDropDown元素执行相同的操作,则可以使用以下代码:
if (e.getSource() instanceof JCheckBox) {
// Do code
}
else if (e.getSource() instanceof JDropDown) {
// Some other code
}
如果您只想对GUI的特定元素执行特定操作,则需要保留这些元素的实例,例如作为班级的成员,并检查每个人的来源:
if (e.getSource() == checkbox1) {
// Do code
}
else if (e.getSource() == checkbox2) {
// do other code
}
else if (e.getSource() == dropDown1) {
// Some other code
}
...