2012-03-28 21 views
0

私はJDesktopPaneを追加するメインパネルを持つJavaアプリケーションを開発しています。 JButtonをクリックした は、JInternalFrameと表示されます。私の問題は、私がMac OSxのルックアンドフィールを使用している場合、JDesktopPaneは正しいサイズでJInternalFrameを表示します。他のルックアンドフィールを使用すると、画面のサイズはJInternalFrameと表示されます。JDesktopPaneのサイズを設定する方法

public void addInDesktop(JInternalFrame frame){ 
     frame.setVisible(true); 
     try { 
         jDesktopPane1.setSize(frame.getSize()); 
         jDesktopPane1.setPreferredSize((frame.getSize())); 
         System.out.println(frame.getSize().toString()); 
         System.out.println(jDesktopPane1.getSize().toString()); 
      jDesktopPane1.add(frame); 
      frame.moveToFront(); 
      frame.setSelected(true); 
     } catch (PropertyVetoException e) { 
      e.printStackTrace(); 
     } 
    } 

System.out.printlnがJDesktopPaneのとのJInternalFrameの寸法が同じであることを私に言いますが、なぜ:JButton(s)

jDesktopPane1 = new JDesktopPane(); 
setContentPane(jDesktopPane1); 

ユーザーがクリックしたとき:

メインJPanelで:これは私が何をすべきかです私はJInternalFrameを全画面サイズで表示しますか?

答えて

2

jDesktopPane1.add(frame)の後にサイズを印刷すると、サイズの変更が表示される可能性があります。デスクトップペインを内部フレームのサイズに設定することはお勧めできません。デスクトップペインが置かれている親JFrameのクライアント領域のサイズを維持する必要があります(setContentPane()を呼び出すフレームjDesktopPane1))、内部フレームを自然にその内部に置くだけです。

が起こっているかもしれないがペインを設定し、同じ大きさの内部は外観を作り、あなたが「最大化」を意味すると仮定感じるかもしれないということであり、それは正しくデスクトップ区画の大きさを解決するときに、それは奇妙な何かを内部フレームと一緒に。

はないはデスクトップ区画上のsetSize()/ setPreferredSize()を呼び出すと、それはその後、L一貫& Fsのを振る舞うかどうかを確認をお試しください。おそらく、デフォルトのサイズがあなたが望むものでないなら、内部フレームで何が最善のものかを理解することができます。

0

はあなたが入れしようとしているあなたのJFrameのように広いと高いサイズを設定したい場合。あなたは、私はあなたがその境界を呼び出しているのJFrameを意味thisすることにより

variable_desktopPane.setBounds(this.getBounds()); 

を使用することができます。

私はこれが挨拶に役立つことを望みます。

関連する問題