Java,从另一个类开始新的JFrame

时间:2013-12-02 21:13:43

标签: java swing jframe

我有这段代码:

public class GUI extends JFrame {
private PlaneUI planeui;

public GUI(PlaneUI planeui) {
    this.planeui = planeui;
}

//We have put the code that creates the GUI inside a method
public GUI() {
   start();
   planeui.display();
} ...

这只是一个测试,我需要方法“planeui.display”才能在程序启动时使用,方法“start();”已经有效了。

public final class PlaneUI extends JFrame {

public void display() {
    //Creates a new JPanel object
   JPanel panelStart = new JPanel();
   getContentPane().add(panelStart);

   //Changing the default layout from Flowlayout to absolute
   panelStart.setLayout(null);

   setTitle("Reservationer"); //Sets the window title
   setSize(236, 256); //Sets the default size of the window
   setLocationRelativeTo(null); //Start location of the window (centered)
   setDefaultCloseOperation(EXIT_ON_CLOSE); //Exits the window
}
}

我已经导入了所需的库,我觉得问题出在一个未正确创建的对象,因为我得到了nullpointerexception。我尝试在main方法中运行此planeUI类,它正常工作。我不能让它以这种方式工作..

2 个答案:

答案 0 :(得分:2)

在功能PlaneUI.display()中添加最后一行setVisible(true),因为您添加了所有内容但未显示任何内容

答案 1 :(得分:1)

您必须将此添加到display()方法中:

setVisible(true);

否则,您所做的只是设置JFrame的所有方面并向其添加JPanel。之后你必须让它可见。