获取触发itemStateChanged的对象类型

时间:2017-12-21 15:29:23

标签: java swing

我想知道如何检查触发itemStateChanged的对象。

我们说我有一个复选框和一个下拉列表。两者都连接到同一个itemStateChanged。在那里,我想首先确定哪个对象被更改,然后根据对象执行我的代码。

我该怎么做?我在想这个:

public void itemStateChanged(ItemEvent e) {
    if(e.getSource() == JComboBox) {
        // Do code
    }
    if(e.getSource() == JDropDown) {
        // Some other code
    }
}

但是这显然不起作用,因为JDropDown和JCheckBox是对象,而不是变量。

1 个答案:

答案 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
}
...