繁体   English   中英

为什么我的 for 循环禁用按钮不起作用,但相同的循环适用于在 JFrame 中设置颜色?

[英]Why does my for loop to disable buttons not work, but the same loop works for setting colors in JFrame?

我正在编写 TicTacToe 游戏,我想在其中使用带有JButton组件的 for 循环,如下所示:

private void clearField(){
    for (int i = 0; i<PlayField.length; i++){
        PlayField[i].setText("");
        PlayField[i].setBackground(new Color(41,200,193));
    }
}

此示例中的 Playfield 是一个包含所有九个按钮的数组,该循环有效,但此循环无效:

private void setInvis(){
    for (int i = 0; i<PlayField.length; i++){
        PlayField[i].setVisible(false);
    }
}

就像之前的评论中所说的那样, JButton.setVisible(false); 只会改变用户查看组件的能力。 在框架本身的眼中,组件仍然存在。 如果这是您想要的,但它仍然不起作用,您可能必须调用JFrame.revalidate(); 更改按钮状态后。 每当您添加或更改组件时,此方法本质上都会“刷新”框架。 在这里查看更多

如果您的目标是使按钮可见但禁用它们,请使用JButton.setVisible(false); .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM