如果选择ItemListener
,我使用CheckBox
收听。
如果选择CheckBox
b1,则将在函数itemStateChanged(ItemEvent arg0)
中更改布尔变量。当Listener处理此事件时
选择CheckBox
b1,varibles" IsCorrect"将被更改(例如将false
转换为true
)。变量在函数中立即更改。如果我使用输出函数,则true
状态将显示在控制台上。但是当我在类SingleSelect
之外使用此变量时,例如,当使用函数Check()
时,变量" IsCorrect"再次回到雕像false
,好像函数itemStateChanged(ItemEvent arg0)
从未使用过。
为什么会出现这种现象呢? 感谢您的所有帮助,并期待解释和答案。 (其他代码被我省略,我只显示点代码)。
class SingleSelect extends Box implements ItemListener
{
private Checkbox b1;
private boolean IsCorrect=false;`
@Override
public void itemStateChanged(ItemEvent arg0) {
if(b1.getState()==answer)
{
System.out.println("Yes!");
System.out.println(b1.getState());
IsCOrrect();
}
else
System.out.println("Wrong!");
}
private void IsCOrrect()
{
IsCorrect=true;
}
public boolean Check()
{
System.out.println("b1"+b1.getState());
if(b1.getState()==answer)
return true;
return false;
}
}