gpt4 book ai didi

java - 我如何使用我与其他地方的函数一起构建的 GUI?

转载 作者:行者123 更新时间:2023-12-01 15:17:54 25 4
gpt4 key购买 nike

你好,我是新来的,我正在制作一个小型井字棋游戏,其中我制作了一个图形用户界面,如下所示:

public static void main(String[] args) {

Frame frame1 =new Frame("TickTacToe");
frame1.setLayout(null);
frame1.setBounds(250,150,500,500);
frame1.setVisible(true);
frame1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

final Button button11 = new Button("");
button11.addActionListener(null);

final Button button12 = new Button("");
button11.addActionListener(null);

final Button button13 = new Button("");
button11.addActionListener(null);

final Button button21 = new Button("");
button11.addActionListener(null);

final Button button22 = new Button("");
button11.addActionListener(null);

final Button button23 = new Button("");
button11.addActionListener(null);

final Button button31 = new Button("");
button11.addActionListener(null);

final Button button32 = new Button("");
button11.addActionListener(null);

final Button button33 = new Button("");
button11.addActionListener(null);


button11.setBounds(100, 100, 80, 70);
button12.setBounds(100, 200, 80, 70);
button13.setBounds(100, 300, 80, 70);
button21.setBounds(200, 100, 80, 70);
button22.setBounds(200, 200, 80, 70);
button23.setBounds(200, 300, 80, 70);
button31.setBounds(300, 100, 80, 70);
button32.setBounds(300, 200, 80, 70);
button33.setBounds(300, 300, 80, 70);

frame1.add(button11);
frame1.add(button12);
frame1.add(button13);
frame1.add(button21);
frame1.add(button22);
frame1.add(button23);
frame1.add(button31);
frame1.add(button32);
frame1.add(button33);
}

我想向按钮添加 Action 监听器,但不是在这个空洞中,即使是不同的类,这样我就可以创建一种方法来运行函数循环,例如玩家回合更改器(mutator),如果它是第一个回合,它将设置按钮文本到x和o,如果是othe我或多或少知道我需要使用的代码,但我无法找到一种方法来使用除了它自己的void之外的其他地方的gui。我不太知道我在寻找什么,因此非常感谢任何帮助。

最佳答案

首先,这个程序结构很糟糕。从表面上看,我可以看出您来自过程编程语言,例如 C 或 Basic 或类似语言。 Java 是面向对象的架构。 Java 可以按程序运行,但事实并非如此。我首先要做的就是退出 main()。这是一个好方法:

public class TicTacToe
{
public TicTacToe()
{

}

public static void main(String args[])
{
new TicTacToe();
}
}

TicTacToe 可能看起来很简单,但它同时发生很多事情,人们点击按钮,所以你需要 ActionListeners,你需要在每次移动后更新屏幕的 UI,你需要检查以确保每次移动是有效的,您需要在每次移动后检查是否获胜等等。这在 main 内部几乎不可能完成。

将任何类型的组件直接添加到 JFrame 中通常都是一个坏主意。最好将 JPanel 放入 JFrame 中,然后将组件添加到 JPanel 中。

尝试为您的游戏创建一个类结构。这是我要做的:

TicTacToe.class --> Checks rules, checks for wins and starts and stops game
Player.class (implements ActionListener) --> Listens for each Player's input
Board.class (extends JPanel) --> this will display the components for the game
Computer.class (extends Player) --> if you wanted to create an AI this is where you would do so

如果我是你,我会阅读一本有关 Java 游戏开发的书或参加一门类(class)。如果您想精通 Java,那么这是一个很好的起点。你错过了很多重要的知识,即使是做一个简单的任务,比如制作井字棋游戏,你也需要这些知识。

关于java - 我如何使用我与其他地方的函数一起构建的 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375781/

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