我知道在复选框上订阅ItemListener
可以在方法中获取ItemEvent.SELECTED/DESELECTED
状态:
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.DESELECTED){
}
....
}
但我想知道的是 JComboBox 在状态更改期间实际发生的"最后选择状态"。随着JCheckBox
JToggleButton
的扩展,我必须通过某种方式知道,因为java按钮在实际更改为新状态之前确实具有中间状态值,例如"按下"。但是我找不到万一JCheckBox
的方法
如果我将事件源强制转换为AbstractButton,然后执行以下操作呢:
ChangeListener changeListener = new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
AbstractButton abstractButton = (AbstractButton)
changeEvent.getSource();
ButtonModel buttonModel = abstractButton.getModel();
boolean armed = buttonModel.isArmed();
boolean pressed = buttonModel.isPressed();
boolean selected = buttonModel.isSelected();
.......
}
};