(顺便说一句,我不是在寻找对代码本身的批评;我知道这是低效的,我只是测试不同的东西,并且想自己学习.)我正在运行这个代码,我可以'弄清楚为什么JFrame我运行程序时没有出现我创建的内容.我看到左上角的程序名称(mac顺便提一下,我正在运行,这意味着程序正在运行)大约3-5秒,然后它退出.它没有显示任何错误,它也没有显示任何错误JFrame.
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TicTacToe extends JFrame
{
JPanel board= new JPanel();
static boolean isXTurn = true;
static boolean isXTopLeft = false;
static boolean isOTopLeft = false;
static boolean isXTopCenter = false;
static boolean isOTopCenter = false;
static boolean isXTopRight = false;
static boolean isOTopRight = false;
static boolean isXCenterLeft = false;
static boolean isOCenterLeft = false;
static boolean isXCenterCenter = false;
static boolean isOCenterCenter = false;
static boolean isXCenterRight = false;
static boolean isOCenterRight = false;
static boolean isXBottomLeft = false;
static boolean isOBottomLeft = false;
static boolean isXBottomCenter = false;
static boolean isOBottomCenter = false;
static boolean isXBottomRight = false;
static boolean isOBottomRight = false;
String letterTopLeft;
String letterTopCenter;
String letterTopRight;
String letterCenterLeft;
String letterCenterCenter;
String letterCenterRight;
String letterBottomLeft;
String letterBottomCenter;
String letterBottomRight;
public TicTacToe()
{
JButton btnTopLeft = new JButton(letterTopLeft);
JButton btnTopCenter = new JButton(letterTopCenter);
JButton btnTopRight = new JButton(letterTopRight);
JButton btnCenterLeft = new JButton(letterCenterLeft);
JButton btnCenterCenter = new JButton(letterCenterCenter);
JButton btnCenterRight = new JButton(letterCenterRight);
JButton btnBottomLeft = new JButton(letterBottomLeft);
JButton btnBottomCenter = new JButton(letterBottomCenter);
JButton btnBottomRight = new JButton(letterBottomRight);
this.setLayout(null);
btnTopLeft.setLayout(null);
btnTopCenter.setLayout(null);
btnTopRight.setLayout(null);
btnCenterLeft.setLayout(null);
btnCenterCenter.setLayout(null);
btnCenterRight.setLayout(null);
btnBottomLeft.setLayout(null);
btnBottomCenter.setLayout(null);
btnBottomRight.setLayout(null);
btnTopLeft.setBounds(0, 0, 100, 100);
btnTopCenter.setBounds(100, 0, 100, 100);
btnTopRight.setBounds(200, 0, 100, 100);
btnCenterLeft.setBounds(0, 100, 100, 100);
btnCenterCenter.setBounds(100, 100, 100, 100);
btnCenterRight.setBounds(200, 100, 100, 100);
btnBottomLeft.setBounds(0, 200, 100, 100);
btnBottomCenter.setBounds(100, 200, 100, 100);
btnBottomRight.setBounds(200, 200, 100, 100);
board.setBounds(0, 0, 300, 300);
btnTopLeft.setPreferredSize(new Dimension(100,100));
board.add(btnTopLeft);
board.add(btnTopCenter);
board.add(btnTopRight);
board.add(btnCenterLeft);
board.add(btnCenterCenter);
board.add(btnCenterRight);
board.add(btnBottomLeft);
board.add(btnBottomCenter);
board.add(btnBottomRight);
setSize(300, 300);
setBackground(Color.gray);
setTitle("Tic-Tac-Toe");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] theory)
{
}
}
Run Code Online (Sandbox Code Playgroud)
你有两个问题:
如您收到的评论中所述,您的主要方法是空的.按照你在那里的建议.
JPanel板与JFrame无关.在构造函数方法的末尾添加以下行:
this.add (board);
Run Code Online (Sandbox Code Playgroud)