2015-04-02 31 views
0

我主要的代码图形用户界面不可见的错误

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

问题是,你的PotLuckPanel是一个JPanel,但你永远不会添加任何组件。

您不需要创建“面板”变量。您只需设置班级的布局,然后直接添加组件即可:

//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); 
0

尝试设置布局帧作为

frame.setLayout(new FlowLayout()); 

或者在主方法的任何其他布局。它将可见。