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

相关代码部分:

按钮:

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中的一个循环中创建,该循环包含所有其他面板。 游戏结束后,是否可以引用全部或禁用全部? 如果没有,我应该如何更改我的代码,以便有可能做到这一点?

===============>>#1 票数:8

如果将按钮放入Collection ,则可以遍历它们并完全禁用它们。

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

如果没有,则有26条disable语句要编写。

===============>>#2 票数:2

请参见JButton的setEnabled()方法。 您可以:

  1. 创建按钮时将其添加到ArrayList ,然后对其进行迭代并逐个禁用
  2. 获取JPanel的子代,遍历它们,检查是否为按钮并将其禁用
  3. 玻璃窗格放在Burron顶部以拦截传入的事件

随意选择最喜欢的一种。

===============>>#3 票数:0

如何通过调用getComponents并递归地遍历它们并找到JButton并在找到它们时将其禁用来获取根面板的子级?

  ask by user2218030 translate from so

未解决问题?本站智能推荐:

1回复

有没有一种方法可以停止程序并等待用户单击按钮

问题在于,当单击按钮并进入开始游戏方法时,程序不会等待问题方法中包含的动作侦听器。 而是跳到最后一个方法。 谢谢。 开始游戏方法 这就是设定问题方法在每个过程中都是相同的。
1回复

有没有一种方法可以自定义输入对话框上的按钮?

我正在尝试创建一个具有自定义按钮的输入对话框。 我试图用自定义按钮创建一个showOptionDialog ,但是后来我无法将文本区域放置在输入对话框中。 我该怎么做? 这是我使用的代码:
2回复

有没有一种方法可以在类之间使用方法?

我在同一个程序包中有两个.java文件。 我计划将第一个.java文件作为基础代码,而第二个.java文件作为GUI swing接口。 我遇到的问题是在项目的GUI部分上工作时,我需要使用代码从.java文件访问几种方法。 我的带有代码的.java文件是这样的: 在我的GUI
1回复

有没有一种方法可以在Swing中设置Ubuntu默认焦点按钮的颜色?

我只是想让我的某些JButtons在具有焦点时,除了橙色边框以外,还要全部涂成橙色。 相反, setFocusPainted(true)只能绘制边框: 许多应用程序似乎都使用橙色按钮进行聚焦,但是我很难在Java Swing中找到正确的解决方案。 我没有实现自己的自定义JButt
1回复

有没有一种方法可以在没有CellEditor的情况下选择JTable中单元格中的所有文本?

简化版:给定一个带有扩展了DefaultTableModel的TableModel的JTable,是否可以在不使用CellEditor的情况下选择具有String类的单元格中的所有文本? 长版:我制作了一个TableModel,它扩展了DefaultTableModel,并且只应具有可编辑
2回复

有没有一种方法可以多次执行paintComponent()中的代码?

我想在屏幕上与鼠标的x和y位置相关地移动图像。 每次单击鼠标时,图像应移动到该位置。 运行代码后,由于x和y初始化为这些值,因此图像在窗口的0、0坐标处绘制。 在屏幕周围单击不会移动图像,但是会正确更新存储在对象中的x和y。 在测试过程中的某一时刻,图像确实移到了屏幕上的其他位置。
1回复

有没有一种方法可以在JList中使用Enum?

我知道JList具有String和DefaultListModel构造函数。 我想找到一种使用带有enum类型的列表的方法,例如JList<SomeEnum> jlist 。 有没有办法做到这一点? 这是一个小的运行示例:
2回复

有没有一种方法可以在BorderLayout中移动JPanel?

我在框架上使用BorderLayout (第一个在tut中“引起”我注意的框架),在标签上使用FlowLayout (我发现适合我的工作的标签),结果显示如下: 我的目标是将“ 2 * 1”稍微向下推,以使其“居中”。 我环顾四周,发现很多人说使用空布局,但是说这不是最好的选择
1回复

有没有一种方法可以覆盖JLabel的内容

我想知道是否有一种方法可以用新文本覆盖放置在JLabel中的文本。 我目前拥有的代码每次都只会创建一个新标签,但并不能替代以前制作的标签。 关于我的代码,我想根据按下哪个按钮从每个字符串数组中更改JLabel中保存的文本。 已为我的动作监听器上传了代码。
2回复

有没有一种方法可以将“摆动”框架彼此“固定”在一起?

我们有一个带有多个顶层摆动窗口(框架)的程序。 我们添加了一些“调试模式”,其中对于原始应用程序的每个窗口,应该有一个专门的窗口,该窗口显示一些信息并提供一些与原始窗口相关的控件。 这与原始应用程序的运行过程相同,因此我可以访问原始窗口对象。 由于这会使屏幕上的窗口数量翻倍(并且开