我正在尝试将我添加到面板中的JButton数组添加到我的JFrame中,但没有任何内容出现

这是我的代码:由于某种原因,我的屏幕上不会出现任何内容,但我不知道为什么,我相信我正确地初始化并添加它。 帮帮我?

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 } } 

谢谢你的帮助! 也很抱歉任何混乱,我的按钮不会出现在屏幕上,而不会出现框架。

调用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的上下文启动应用程序。 查看Initial Threads以获取更多详细信息

您还应避免在按钮上使用MouseListener ,它们有一个ActionListener API,当用户单击按钮或“活动”键(通常为EnterSpace )时,该API包括通知