如何从另一个类调用JFrame?

时间:2016-05-29 11:26:08

标签: java swing jframe

我有一个创建框架的类。

public class GameDisplay{

....

public void createDisplay(){
    frame=new JFrame(title);
    canvas=new Canvas();
    canvas.setPreferredSize(new Dimension(width,height));
    canvas.setFocusable(false);
    frame.setSize(width,height);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    frame.setResizable(false);
    frame.add(canvas);
    frame.pack();
}
public Canvas getCanvas(){
    return this.canvas;
}

public JFrame getFrame(){
    return frame;
}

如果我有另一个类将面板和按钮添加到框架中,我该如何添加它们? 我试过了:

GameDisplay g;
Container c;
c = g.getFrame().getContentPane();

但它返回NullPointer错误。因此,我似乎无法添加面板。

1 个答案:

答案 0 :(得分:-1)

将createDisplay()中创建的JFrame附加到静态变量。然后从另一个类访问该静态变量。

喜欢这个

public static JFrame frame1;

然后在createDisplay()

GameDisplay.frame1 = frame;

在另一个获取内容窗格的类中

c = GameDisplay.frame1.getContentPane();

希望这有帮助!