2012-02-26 7 views
1

私はSwingの新しいユーザーです。座標でコンポーネントを描画する際に問題があります。 、このコードを見てください:コンポーネントの座標を設定するにはどうすればいいですか?

JFrame frame=new JFrame(); 
    frame.setBounds(new Rectangle(0, 0, 700, 600)); 
    frame.getContentPane().setBackground(Color.yellow); 
    frame.setVisible(true); 

    JPanel graph=new JPanel(); 
    graph.setBounds(new Rectangle(0, 0, 700, 300)); 
    graph.setBackground(Color.white); 
    graph.setOpaque(true); 
    frame.getContentPane().add(graph); 

私はJPanelのは、JFrameのから50%を閉じたが、今では100%を閉じ、JFrameのは背景のホワイト色を持っていることが必要です。間違いをどうやって修正すべきですか?また、幅と高さをパーセントで設定する方法はありますか?たとえば、幅は50%です。または、私の質問のための容器が存在する可能性がありますか?

+2

レイアウトの問題を解決するための答え_always_は、適切なLayoutManagerを使用することです。適切なものを見つけるためには...よく...それらについてすべてを学ばなければなりません、f.i.チュートリアル@mKorbelにリンク:-) – kleopatra

答えて

5

、この場合には、Standard LayoutManagerを使用し、whatever#setBound()を使用しないでくださいありがとうはそれを行うにはどのような方法の最高GridLayout(2, 0)であるあなたは本当にあなたが絶対的なポジショニングをしたい場合は、あなたのJFrameとそのJPanels

+0

+1情報のために、常にframe.setVisible(true)を使用することをお勧めします。最後に、コンテナにコンポーネントを追加した後:-) –

+0

ありがとうございました。しかし、2枚のパネルに30/70パーセントを設定する必要がある場合、どうすればいいですか? – user1166635

+0

次に、[GridBagLayout](http://stackoverflow.com/a/8746800/714968)または(現代のカスタムLayoutManager)[MigLayout](http://www.miglayout.com/) – mKorbel

3

両方向にサイズ変更可能になりますDoing Without a Layout Managerに示すように、デフォルトのレイアウトマネージャを無効にすることができます。しかし、ほとんどの場合(コンテナの表示内容に応じて)最適なレイアウトマネージャを選択するのが最善です。

関連する問題