2011-02-28 16 views
1

私はJavaでプログラムのGUIを書いています。私はJLayeredPaneを私のJFrameのContentPaneとして利用したいと思っています。私のJLayeredPaneには、2つのレイヤーがあります.1つはCanvas(canvas1)、もう1つはJPanel(jPanel5)です。私はNetbeans IDEを使用し、このコードが生成されます:Java:JLayeredPaneサイズ変更の問題

canvas1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 
    canvas1.setBounds(0, 0, -1, -1); 
    jLayeredPane1.add(canvas1, javax.swing.JLayeredPane.PALETTE_LAYER); 

    jPanel5.setBounds(0, 0, 670, 550); 
    jLayeredPane1.add(jPanel5, javax.swing.JLayeredPane.DEFAULT_LAYER); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE) 
    ); 

パック();

私は私のプログラムを実行すると、私は奇妙なイベントを見た! JFrameのサイズを変更すると、メインのJLayeredPaneのサイズは変更されませんでした。私はコンポーネントのバックグラウンドカラーを使いましたが、JLayeredのサイズは永続的ですが、私はそれをプロパティに縦横にサイズ変更可能に設定しています。 JFrameはサイズ変更可能ですが、メインのjLayeredPaneのサイズはpermamnetです。

jLayeredPaneをJFrameとしてサイズ変更する方法を教えてください。

は、あなたが今使っているデフォルトのBorderLayoutの代わりに、GroupLayoutを使用してみてください

enter image description here

答えて

1

ありがとうございました。単にGroupLayoutの作成で始まる行のグループをコメントアウトし、次の行を追加します。

getContentPane().add(jLayeredPane, BorderLayout.CENTER); 

.add()メソッドにBorderLayout.CENTERパラメータを使用すると、指定したウィジェットを埋めるためにしたいのBorderLayoutマネージャに指示しますあなたの窓の中心。

+0

ありがとうございます。しかし、このコードをnetbeansの生成コードに追加するのはimpssibleです。 JLayeredPaneプロパティで彼をどのように設定できますか? – sajad

+0

Netbeansを使用してコードを生成しないでください。 Swingチュートリアル(http://download.oracle.com/javase/tutorial/uiswing/TOC.html)には、IDEに依存しないように独自のGUIを作成する方法の例が豊富に用意されています。 – camickr

+0

プロジェクトの作業が完了したら、IDEからソースを取り出し、それを調整してIDEが引き起こしたすべての問題を修正することができます。 – Raceimaztion

1

JFrameと一緒にJLayeredPaneを変更することができます。 (NetBeans IDE)デザインモードでJLayeredPaneを右クリックし、ポップアップメニューで "自動サイズ変更"にカーソルを合わせ、垂直と水平を確認します。 このようにして、JLayeredPaneのサイズはJFrameに相対的に変更されます。

関連する問題