框架什么都不显示,也没有显示任何错误

时间:2017-08-27 21:39:00

标签: java swing jframe jpanel

所以在由于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")));

}
}

1 个答案:

答案 0 :(得分:3)

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

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

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

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