为什么不能使用ItemListener更改变量

时间:2016-05-11 14:28:32

标签: java swing awt

如果选择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;
    }
}

0 个答案:

没有答案