gpt4 book ai didi

java - 将 JPanel 添加到 JFrame 时遇到问题

转载 作者:行者123 更新时间:2023-11-30 08:56:50 25 4
gpt4 key购买 nike

我正在创建一个 TicTacToe 游戏。我已经将所有带有 ActionListeners 的后端放在按钮上,将按钮添加到面板,设置框架等。

但是,当我运行该程序时,我的 JPanel 似乎并未添加到 JFrame 中。我尝试过使用不同的布局,仔细检查我是否确实为所有内容都添加了 .add 行,并且之前的所有帖子似乎都指向我认为我已经涵盖的内容。

如果这真的很直截了当,我提前道歉。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class BasicGUI {
private String piece="O";
protected static Boolean player=true;
private static final JFrame frame = new JFrame("BasicGUI");
private static final JPanel panel=new JPanel(new GridLayout(4,3));
protected static final JButton[] cells= new JButton[9];
private static final JButton exitButton=new JButton("Exit");
private static final JButton restartButton=new JButton("Restart");

public static void main(String[] args){
createWindow();
createButtons();
}

//Set up frame
private static void createWindow(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(450, 600);
//Tried adding panel here and below
//frame.add(panel, BorderLayout.CENTER);
frame.setVisible(true);
//Tried using getContentPane too
//frame.getContentPane().add(panel, BorderLayout.CENTER);
}

//Add action listeners to buttons
private static void createButtons(){
for(int i=0; i<9; i++){
cells[i]=new JButton();
cells[i].addActionListener(new ButtonHandler());
panel.add(cells[i]);
}
exitButton.addActionListener(new ExitHandler());
restartButton.addActionListener(new RestartHandler());
panel.add(exitButton);
panel.add(restartButton);
frame.add(panel);
}

public String getPiece(){
return piece;
}
protected void setPiece(String s){
this.piece=s;
}
}

感谢您的帮助。

最佳答案

添加面板后调用这两个方法:

frame.pack();
frame.setVisible(true);

关于java - 将 JPanel 添加到 JFrame 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28433410/

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