java - 有没有办法用一种方法禁用所有按钮?

标签 java swing

这是我正在苦苦挣扎的学校实验室,代码正在制作刽子手游戏,当“大脑”程序说游戏结束时,所有字母按钮都应该被​​禁用。

相关代码段:

按钮:

class ActionButton extends JButton implements ActionListener{
    private String name;
    private char t;
    public ActionButton(String s){
        super(s);
        name = s;
        t = name.charAt(0);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        ido.newLetter(t);
        this.setEnabled(false);
        LovesMePanel.this.update();
    }

}

更新方法:

public void update(){
    answers = ido.getAnswer();
    flower.setTriesLeft(ido.getTriesLeft());
    progress.setText(answers);      
    if(ido.gameOver()){
// This is where I need to deactivate the buttons       
        if(ido.hasWon()){

        }
    }
    else if(triesLeft == 0){

    }

}

所有按钮都是在包含所有其他面板的 LoveMePanel 中的一个循环中创建的。有没有办法在游戏结束时全部引用或禁用它们? 如果没有,我应该如何更改我的代码才能做到这一点?

最佳答案

如果您将按钮放在 Collection 中,您可以遍历它们并以这种方式禁用它们。即,

for (JButton b : myButtons) {
    b.setEnabled(false)
}

如果不是,您有 26 个禁用语句要编写。

关于java - 有没有办法用一种方法禁用所有按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043180/

相关文章:

java - 获取完整的联系人电话号码和国家/地区代码,即使未输入国家/地区代码

java - 算法选择 - 理解是什么以及为什么

java - JScrollPane 内的 JPanel 在包上扩展

java - 如何在多线程Java应用程序中实现同步

java - 如何根据java中的数字将字符串放入数组中的特定位置?

java - 在外部类中创建 JTabbedPane

java - 无法直接在 JFrame 上绘画

java - 多个 ActionListener 会产生问题

java - 按按钮加载面板

java - 我如何将游标作为参数传递给存储过程并在 Java 中捕获它