2016-04-25 1 views
0

今日の質問は私の心にあります。私はトリビアゲームを開発しようとしているので、2つのJPanelsを画面に追加する必要があります。問題は、1つだけが表示されます。具体的には、初期化された最初のものです。私はこのサイトでいくつかの他の同様の質問をチェックアウトしたが役に立たなかった。どのようにこれを修正するための任意のアイデア? questionPanelとanotherPanelはどちらもJPanelを継承するクラスです。なぜ同時に両方が現れないのでしょうか?トリビアのコンストラクタの最後に複数のJPanelsを表示できない

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
public class Trivia extends JFrame{ 

    questionPanel qp; 
    private JButton q1,q2,q3,q4; 

    public Trivia(){ 
     setSize(600,600); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     qp = new questionPanel(); 
     add(qp,BorderLayout.SOUTH); 

     anotherPanel ap = new anotherPanel(); 
     add(ap,BorderLayout.NORTH); 


    } 

    public static void main(String args[]){ 
     Trivia t = new Trivia(); 
    } 

} 
+1

コール 'のsetVisible(true)を'あなたは両方のパネルを追加した後。また、EventQueue.invokeLater(新しいRunnable(){public void run(){Trivia t =新しいトリビア()}})の内部で、 'Trivia t = new Trivia()'をラップすることもできます。それでも問題が解決しない場合は、パネルの内容/推奨サイズがわからないため、[mcve]を入力してください。 –

+2

「今日の私の心の質問はこれです」 - そして私の質問はあなたが助けを受けるときにあなたの他の質問に答えを受け入れるのはなぜですか?私はこれを飛ばすと思う。 – camickr

+0

私は答えが正しいとすればそれを受け入れます.2番目の理由はすばらしく、これはプロの環境になるはずです。あなたが私の方法が好きでないなら、あなたの時間を他の先生/マダムに無駄にしてください。 –

答えて

3

コールsetVisible(true);

+0

これは何も変わらず、すべてのsetVisibleはJFrame全体の可視性を変更します。 –

+1

@ BobbyC.Robillard、 'setVisible()'はそれ以上のことをします。これは、コンポーネントがサイズを与えることができるようにレイアウトマネージャを呼び出します。さもなければ、コンポーネントは(0、0)のサイズを持つので、何も塗りつぶされません。そのため、フレームのサイズ変更が機能し、レイアウトマネージャが呼び出されます。 – camickr

関連する問題