Java boolean 值和 JButton

标签 java swing boolean jbutton actionlistener

我已经编写了这段代码,但由于某种原因,该代码无法按预期工作。看起来它应该有效,但它有点让我认为“isBasic” boolean 值并没有真正改变,并且总是导致错误。谁能告诉我出了什么问题吗?

    @Override
    public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("basic")){
        isBasic = true;
    }

    if (isBasic && e.getActionCommand().equals("basic")){
        isBasic = false;
    }

    if (isBasic){
        System.out.println("It works!!");
    }
}

这是 JButton 的代码:

    JButton basicTower = new JButton("Basic Tower");
    JButton test = new JButton("Test");
    public boolean isBasic = false;

    public TurretPanel(JPanel panel,BorderLayout layout){

    setLayout(layout);
    panel.add(basicTower,BorderLayout.WEST);
    add(panel);


    basicTower.setActionCommand("basic");
    basicTower.addActionListener(this);
}

最佳答案

这两个 if 语句相互否定:

if (e.getActionCommand().equals("basic")){
    isBasic = true;
}

if (isBasic && e.getActionCommand().equals("basic")){
    isBasic = false;
}

当命令等于“basic”时,两者都会执行,第一个将其设置为 true,第二个将其恢复为 false。使用 if/else:

if (e.getActionCommand().equals("basic"))
{
    isBasic = !isBasic;
}

关于Java boolean 值和 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908263/

相关文章:

java - ListSelectionListener 不更改面板

java - 将@PathParam 传递给 Jersey 中的子资源定位器类

java - Jbutton 在两种背景颜色之间闪烁

java - 从 javascript 函数访问 Java String 对象

java - 将 JPanels 置于角落?

sql - 为什么 boolean 字段在 Hive 中不起作用?

python - 为什么 bool 是 int 的子类?

c++ - 按位不和逻辑不 : Why ~true == true and ~false == false

java - Autocloseable 类不调用默认关闭方法

java - 如何获取 Instagram 上上传的特定位置的所有照片