Java 我正在尝试添加一个JButton数组,该数组已添加到JFrame的面板中,但没有显示任何内容

Java 我正在尝试添加一个JButton数组,该数组已添加到JFrame的面板中,但没有显示任何内容,java,swing,jpanel,Java,Swing,Jpanel,这是我的密码: 由于某些原因,我的屏幕上不会显示任何内容,但我不知道为什么,我相信我正在正确初始化它并添加它。帮忙 import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import

这是我的密码: 由于某些原因,我的屏幕上不会显示任何内容,但我不知道为什么,我相信我正在正确初始化它并添加它。帮忙

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class main implements MouseListener{

final int WIDTH = 800, HEIGHT = 500, BOARD_WIDTH = 10, BOARD_HEIGHT = 10;
private JButton [][]buttons = new JButton[BOARD_WIDTH][BOARD_HEIGHT];

public static void main(String[] args) {
    // TODO Auto-generated method stub
    new main();
}

public main()
{
    Start();
}

private void Start()
{

    JFrame mainFrame = new JFrame("MineSweeper");
    mainFrame.setVisible(true);
    mainFrame.setSize(WIDTH,HEIGHT);
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainFrame.setLocationRelativeTo(null);
    mainFrame.setResizable(false);
    mainFrame.setLayout(new BorderLayout());

    JPanel p1 = new JPanel();
    p1.setLayout(new GridLayout(BOARD_WIDTH, BOARD_HEIGHT));

    for(int x = 0; x < BOARD_WIDTH; x++)
        for(int y = 0; y < BOARD_HEIGHT; y++)
        {
            buttons[x][y] = new JButton("01");
            buttons[x][y].addMouseListener(this);
            p1.add(buttons[x][y]);
        }

    mainFrame.add(p1, BorderLayout.CENTER); 
}

@Override
public void mouseClicked(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

}
导入java.awt.BorderLayout;
导入java.awt.GridLayout;
导入java.awt.event.MouseEvent;
导入java.awt.event.MouseListener;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
公共类main实现MouseListener{
最终内部宽度=800,高度=500,板宽=10,板高=10;
私有JButton[][]按钮=新JButton[板宽][板高];
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
新的main();
}
公用干管()
{
Start();
}
私有void Start()
{
JFrame大型机=新JFrame(“扫雷舰”);
mainFrame.setVisible(true);
主机。设置尺寸(宽度、高度);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLocationRelativeTo(空);
mainFrame.setresizeable(false);
mainFrame.setLayout(新的BorderLayout());
JPanel p1=新的JPanel();
p1.设置布局(新网格布局(板宽、板高));
用于(int x=0;x
谢谢你的帮助!
对于任何混淆,也很抱歉,我的按钮不会出现在屏幕上,而不是框架不会出现。

Call
mainFrame.setVisible(true)最后一个

private void Start()
{

    JFrame mainFrame = new JFrame("MineSweeper");
    // Move this...
    //mainFrame.setVisible(true);
    //...
    mainFrame.add(p1, BorderLayout.CENTER); 
    // To here
    mainFrame.setVisible(true);
}
您还应该在EDT上下文中启动应用程序。请查看以了解更多详细信息


您还应该避免在按钮上使用
MouseListener
,它们有一个
ActionListener
API,当用户单击按钮或“active”键(通常是回车键或空格键)时,该API会发出通知。

调用
mainFrame.setVisible(true)最后一个

private void Start()
{

    JFrame mainFrame = new JFrame("MineSweeper");
    // Move this...
    //mainFrame.setVisible(true);
    //...
    mainFrame.add(p1, BorderLayout.CENTER); 
    // To here
    mainFrame.setVisible(true);
}
您还应该在EDT上下文中启动应用程序。请查看以了解更多详细信息

您还应该避免在按钮上使用
MouseListener
,它们有
ActionListener
API,当用户单击按钮或“active”键(通常为回车或空格)时,该API包含通知