2016-05-29 16 views
1

フレームを作成するクラスがあります。別のクラスから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

[複数のJFramesの使用、良い/悪い練習ですか?](http://stackoverflow.com/q/9554636/418556) –

答えて

-1

createDisplay()で作成したJFrameを静的変数にアタッチします。その静的変数に別のクラスからアクセスします。別のクラスでcreateDisplayで次にこの

public static JFrame frame1; 

()

GameDisplay.frame1 = frame; 

同様

はただ、これは助け

c = GameDisplay.frame1.getContentPane(); 

希望を行うコンテンツ・ペインを取得します!

+0

ありがとうございました!出来た!つまり、例外エラーはなくなりました! =)しかし、私の問題は、コンテナにボタンを追加しようとしましたが、それでもフレームに表示されません。コンテナを表示するには、フレームをリフレッシュするにはどうすればよいですか?申し訳ありませんが、私はまだGUIの曲線を学んでいます。 – kahjt

+0

答え(緑色のチェックマーク)をチェックして、解決済みとマークします。助けても投票を残してください! – RoccoDev

+0

ボタン変数を宣言したり割り当てたりしていません(上のコードから)... JButton変数を作成し、frame.add(button)を呼び出す必要があります – RoccoDev

関連する問題