2017-08-27 87 views
0

所以在解决我的第一个错误后,由于Hovercraft的帮助,我终于开始编写代码并为我的实际项目准备好了东西。但是,当我尝试添加标签时,它现在只是完全不显示任何内容,我的意思是如果我删除标签并添加其他任何东西(如按钮等),它会向我显示按钮,但是当我添加标签到代码,它只是给了我一个完整的空白屏幕,不管标签的属性如何。该项目的代码如下:框架什么也没有显示,也没有显示任何错误

主要框架:

public class Parking_Mania { 

public static void main(String []args)throws Exception 
{ 
    new GameFrame("Paking Mania"); 
} 
} 

游戏帧数:

public class GameFrame extends JFrame{ 

File info=new File("information.txt"); 

public GameFrame(String name) throws IOException 
{ 
    if(!info.exists()) 
    { 
     info.createNewFile(); 
    } 
    this.setTitle(name); 
    this.setSize(640,510); 
    this.setLocationRelativeTo(null); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.setResizable(false); 
    this.setVisible(true); 

    Frames frame=new Frames(); 
    this.add(frame); 
    frame.panel.show(frame, "opening"); 

} 
} 

面板类来处理更换不同的面板:

public class Frames extends JPanel{ 

CardLayout panel= new CardLayout(); 

public Frames() 
{ 
    this.setLayout(panel); 
    Opening op=new Opening(this); 
    //nxtframe nf= new nxtframe(this); 
    this.add(op, "opening"); 
    //this.add(nf, "nt"); 
    } 

} 

最后面板应显示在框架上:

public class Opening extends JPanel{ 


private Frames f; 
private JLabel bg=new JLabel(); 
//private JLabel helpframe=new JLabel(); 
private JButton play=new JButton(); 
/*private JButton help=new JButton(); 
private JButton helpclose=new JButton(); 
private ImageIcon background;*/ 

public Opening(final Frames f){ 

    this.f=f; 
    this.setBackground(Color.BLACK); 
    //this.add(bg); 
    this.add(play); 
    //bg.setIcon(new ImageIcon(getClass().getResource("/bg.jpg"))); 

} 
} 
+0

没有创建JFrame如何添加组件?创建JFrame(intialize)之后再添加你的所有组件框架可见。第二件事是你试图添加JFrame在Jpanel上它应该反之亦然 –

+0

我怀疑我试图在JPanel上添加jframe,请你指出,以便我可以更正它?我还创建了(初始化JFrame,不是吗?)在第一堂课。虽然我确实记得我应该先添加组件,然后再将其设置为可见 –

回答

3

组件应在框架可见之前添加到框架中。

Swing tutorial中的工作示例开始。本教程涵盖了Swing的所有基础知识。

我会特别从How to Use CardLayout的教程开始,了解和修改第一个演示代码。

本教程将向您展示如何更好地构建代码,以便您不需要继续扩展面板,只需将组件添加到面板即可。

+0

OMG,这是错误!在我希望之前校对我的代码之前,我从未看过可见部分。 PS:我扩展面板的原因是因为代码看起来更有组织性我的意思是让我的每个类看起来都不像代码聚集在一起,这使得它少了一些集群并且看起来有点组织起来(我的老师的建议在去年(12年级)教过我java的)。 –

相关问题