0

このjPanel1のコンストラクターから、jPanel1内にjPanel2を埋めようとしています。このようなもの。

public jPanel1(){

    initComponents(); // here is created the jPanel2
    JButton jb= new JButton();
    jb.setBounds(new java.awt.Rectangle(0, 22, 400, 270));
    this.jPanel2.add(jb);
}

Jボタンが表示されません。とにかく、コンストラクターから jPanel2 境界を出力すると、次のようになります。

「java.awt.Rectangle[x=0,y=0,幅=0,高さ=0]」

私が理解できないのは、たとえば、この Jbutton を別のボタンリスナーから追加すると、うまく機能するということです。JPanel1 のライフサイクルのある時点で、jPanel2 が制限されていると思いますが、どこにあるのかわかりません。誰か助けてくれませんか?ありがとう!

4

1 に答える 1

1

JPanelデフォルトでは を使用しますFlowLayout。代わりに、BorderLayout

public jPanel1(){
    initComponents(); // here is created the jPanel2
    JButton jb= new JButton();
    jPanel2.setLayout(new BorderLayout());
    this.jPanel2.add(jb);
}

あなたが直面している最初の問題はjPanel1、コンテナがレイアウトされるまで親コンテナ()のサイズが不明であることです...レイアウトマネージャにそこで仕事をさせた方が良いです;)

于 2013-05-27T11:45:55.853 に答える