2016-05-17 8 views
0

私は最近、個人用のキャラクター作成シートのGUIを書くためにJavaとaamを学び始めました。私はバックエンドのものはすべて正常に動作していると信じていますが、グレーボックス以外のGUIを表示することができないため、コンソールの外でテストすることはできません。パネルがGUIに追加されていない

JFrameを作成し、他の文字クラスのコンストラクタを呼び出してすべての作業を行うメインクラスがありますが、何らかの理由でGUIに何も表示されません。私は何かエラーや何かを得ていないと私は無駄に可能なソリューションを研究するために数時間を費やしてきました。

マイコード: mainメソッド:

public static void main(String[] args) throws IOException 
{ 
    JFrame main = new JFrame(); 
    JMenuBar menu = new MenuBar(); 
    JPanel character = new CreatorGUI(); 


    main.getContentPane().add(character); 
    main.add(menu); 
    main.setJMenuBar(menu); 
    main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    main.setSize(10000, 10000); 
    main.pack(); 
    main.setVisible(true); 
} 

CreatorGUI:

public CreatorGUI() throws IOException 
{ 
    JPanel container = new JPanel(); 
    JPanel stats = makeStats(); 
    JPanel mods = makeMods(); 
    JPanel character = makeChar(); 

    container.add(mods); 
    container.add(stats); 
    container.add(character); 
    add(container); 
} 

私はGUIは、すべてが私の前に働いていることを確認するために、その最も基本的な形での作業を取得しようとしています戻ってGUIを洗練するが、私は壁に当たった。

ご協力いただきありがとうございます。

答えて

2
main.getContentPane().add(character); 
main.add(menu); 
main.setJMenuBar(menu); 

main.add(...)と同じです。つまり、コンポーネントがコンテンツペインに追加されます。

JFrameのデフォルトのレイアウトマネージャはBorderLayoutです。

制約を指定しない場合、コンポーネントはCENTERに追加されます。ただし、「メニュー」が「文字」パネルに置き換わるように、単一のコンポーネントのみをCENTERに追加することができます。

main.add(menu)ステートメントを削除してください。これはメニューバーにのみ追加する必要がありますので、setJMenuBar(...)メソッドを使用する必要があります。

+0

これは機能しています。ありがとうございます1 –

0

最も疑わしいメソッド呼び出しには、ピクセルの高さと幅をとるsetSizeがあります。 10000はおそらく幅と高さが大きすぎるため、表示しようとしている部分だけが表示されることがあります。 800 x 800のようなものに変更すると、新しいものを見ることができます。 main.getContentPane().add(...)を使用して

関連する問題