gpt4 book ai didi

java - Swing - 使用 getComponent() 更新所有 JButton

转载 作者:行者123 更新时间:2023-11-29 07:06:54 24 4
gpt4 key购买 nike

我正在制作一个井字游戏,其中每个棋盘都由一个 JButton 表示。当有人单击该按钮时,文本将更改为“X”或“O”。我正在编写一个重置函数,它将所有按钮中的文本重置为“”。我正在使用 getComponents() 方法访问数组中的所有按钮。

我只是想知道我做错了什么,因为这个位编译正确

component[i].setEnabled(true);

但是这个位没有

component[i].setText("");

我收到“找不到符号”错误。请看下面的代码。我只包含了我认为必要的代码。

    JPanel board = new JPanel(new GridLayout(3, 3));

JButton button1 = new JButton("");
JButton button2 = new JButton("");
JButton button3 = new JButton("");
JButton button4 = new JButton("");
JButton button5 = new JButton("");
JButton button6 = new JButton("");
JButton button7 = new JButton("");
JButton button8 = new JButton("");
JButton button9 = new JButton("");

board.add(button1);
board.add(button2);
board.add(button3);
board.add(button4);
board.add(button5);
board.add(button6);
board.add(button7);
board.add(button8);
board.add(button9);

public void reset()
{
Component[] component = board.getComponents();

// Reset user interface
for(int i=0; i<component.length; i++)
{
component[i].setEnabled(true);
component[i].setText("");
}

// Create new board logic
tictactoe = new Board();
// Update status of game
this.updateGame();
}

最佳答案

getComponents () 返回一个 Component 数组,它没有 setText(String) 方法。您应该将 JButton 实例保留为类成员(这是我强烈建议的方式),并直接使用它们,或者循环遍历所有 Component 对象,检查它是否是一个 JButton 实例。如果是,则将其显式转换为 JButton,然后对其调用 setText(String)。例如

public void reset()
{
Component[] component = board.getComponents();

// Reset user interface
for(int i=0; i<component.length; i++)
{
if (component[i] instanceof JButton)
{
JButton button = (JButton)component[i];
button.setEnabled(true);
button.setText("");
}

}
}

关于java - Swing - 使用 getComponent() 更新所有 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18704904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com