用getSelectedItem即可,不需要监听。
chara = (String) JCBOperationSelect.getSelectedItem();
n = Integer.valueOf((String)JCBNumberOfDigit.getSelectedItem());
若写如下代码:
//这样是不行的,会出现如下问题:无论ComboBox选什么,按开始做题显示的都是一位数加法。可能是因为监听器监听的是动作,但是选择这个动作发生在按按钮前。提交之后再重新选过再开始做题,这样显示出来的题目就是对的了(一定要重新选过,不选的话还是和原来一样是加法,即使第一次就把复选框的内容变成了其他的)
JCBOperationSelect.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e)
{
//chara = ItemEvent.SELECTED;//一定要注意匿名内部类不能访问非final的局部变量,因此n和chara的声明都不能放在start函数中进行
chara = (String) e.getItem();
}
});
JCBNumberOfDigit.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
// n = ItemEvent.SELECTED;//这样是不行的 SELECTED表示的是有值被选中了 应该为0/1 表示是否选中 若要得到选中的东西 应用(String)XXX.getItem
n = Integer.valueOf((String)e.getItem());
}
});