所以在由于Hovercraft的帮助解决了我的第一个错误后,我终于开始编码并为我的实际项目准备好东西了。然而,当我试图添加标签时,它现在只显示我什么都没有,我的意思是如果我删除标签并添加任何其他东西,如按钮左右,它会显示按钮但是我添加jlabel的那一刻对于代码,它只是给我一个完整的空白屏幕,无论标签的属性是什么。该项目的代码如下:
主框架:
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");
}
}
处理更改不同面板的Panel类:
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 :(得分:3)
在框架可见之前,应将组件添加到框架中。
从Swing tutorial中的工作示例开始。本教程涵盖了Swing的所有基础知识。
我特别从How to Use CardLayout
上的教程开始,了解第一个要理解和修改的演示代码。
本教程将向您展示如何更好地构建代码,以便不继续扩展面板,只是为了向面板添加组件。