我的主要代码
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课程
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);
}
}
按钮不可见,面板也是如此。只有框架出现。当我编译时没有错误。我的错误是什么?我该如何解决?
答案 0 :(得分:0)
尝试将布局设置为框架
frame.setLayout(new FlowLayout());
或主方法中的任何其他布局。它将是可见的。
答案 1 :(得分:0)
问题是您的PotLuckPanel
是JPanel
,但您从不向其添加任何组件。
您无需创建“panel”变量。您只需设置类的布局,然后直接将组件添加到其中:
//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);