图形用户界面不可见错误

Graphical user interface not visible error

我的主代码

import javax.swing.JFrame;

public class PotLuck {

private static JFrame frame;

public static void main(String[] args) {
    frame = new JFrame("POT LUCK V1.0");
    PotLuckPanel panel3 = new PotLuckPanel();
    frame.add(panel3);
    frame.setSize(300,300);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
}
}

我的 PotLuckPanel class

import java.awt.BorderLayout;

public class PotLuckPanel extends JPanel  {

private JLabel statusBar;
private int guessCounter=0;

public PotLuckPanel(){

JPanel panel = new JPanel(new BorderLayout());  
JPanel panel2 = new JPanel();

panel2.setLayout(new GridLayout(5,5));
for(int i=0 ; i< 25 ; i++){
    JButton buttoni = new JButton();
    panel2.add(buttoni);
}

statusBar = new JLabel("Number of guess:"+ guessCounter);
panel.add(statusBar, BorderLayout.NORTH);
panel.add(panel2, BorderLayout.SOUTH);
}
 }

按钮不可见,面板也不可见。只有框架出现。当我编译时没有错误。我的错误是什么?我该如何解决?

尝试将布局设置为 frame as

frame.setLayout(new FlowLayout());

或 main 方法中的任何其他布局。并且它将是可见的。

问题是您的 PotLuckPanelJPanel,但您从未向其添加任何组件。

您无需创建 "panel" 变量。您只需设置 class 的布局,然后直接将组件添加到其中:

//JPanel panel = new JPanel(new BorderLayout());  
setLayout( new BorderLayout() ):

...

//panel.add(statusBar, BorderLayout.NORTH);
//panel.add(panel2, BorderLayout.SOUTH);
add(statusBar, BorderLayout.NORTH);
add(panel2, BorderLayout.SOUTH);