如何从另一个类调用JFrame?
问题描述:
我有一个类创建一个框架。如何从另一个类调用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();
但它返回空指针错误。因此,我似乎无法添加面板。
答
将您在createDisplay()中创建的JFrame附加到静态变量。然后从另一个类访问该静态变量。
像这样
public static JFrame frame1;
然后在createDisplay()
GameDisplay.frame1 = frame;
在另一个类来获取内容窗格中只是做
c = GameDisplay.frame1.getContentPane();
希望这有助于!
请参阅[使用多个JFrames,好/坏实践?](http://stackoverflow.com/q/9554636/418556) –