2011-01-31 10 views
2

皆さん、私はJavaにいくつかの問題があります。5行1列のパネルを作成しました。また、行の1つにボタンを追加しました。最後に、このパネルをフレームに追加しました。フルフレームに延伸する、私は、ボタンのサイズを小さくすることができ、私はgridLayoutのボタンを伸ばした

myButton.setSize(10,10); 

を使用しますが、私はそれが問題になるかもしれ

frame.pack(); 

を使用するも、動作するようには思えません、事前に感謝

+0

gui作成コード全体を投稿できますか? –

答えて

3

自分でサイズを設定しないでください。あなたはあなたのために仕事を行う適切なLayoutManagerを選択する必要があります。

(あなたが明示的に行う場合を除き、あなたが設定setLayout(null)サイズが破棄され、現在のレイアウトマネージャーがコンポーネントに新しいサイズを割り当てます。)

あなたはGridLayoutを使用していると言います。このレイアウトはかなりフレキシブルではありませんが、GridLayoutのメリットを望んでいればさらに柔軟性がありたい場合は、GridBagLayoutを試してみてください。

あなたのニーズに合ったレイアウトマネージャーが見つからない場合は、自分で作成することを恐れないでください。 (これは、実装するための5つの比較的容易な方法です。)

あなたの現在のアプリケーション、そしてあなたはそれを見てみたい方法についての説明のスクリーンショットを投稿する場合、私たちはさらにあなたを助けることができるでしょう。レイアウトマネージャが最終的に決定したので

いくつかの便利なリンク

1

あなたは(GridLayoutのように)レイアウトマネージャを使用している、その後、一般的には動作しませんsetSize()の呼び出しコンテナ内の各コンポーネントのサイズと配置方法

setPreferredSize()setMaximumSize()setMinimumSize()のいずれかを実行してください。使用中のレイアウトマネージャによっては、これらのリクエストのうちの1つまたは複数(実際にはそれらが存在するため)が尊重されます。 frame.pack()に電話すると、コンテナ(およびサブコンテナ)のすべてのサイズを好みのサイズに調整しようとします。

あなたのケースでは、おそらくmyButton.setPreferredSize (10, 10);を呼び出すことができます。ただし、コンテナのサイズが変更された場合でもサイズは変更されます。あなたがそれを望まないなら、私が投稿できる他の解決策があります。

1

aloobeがあなたにとってより一般的な解決策を持っているように見えるとき。ボタンをJPanelに追加したり、LayoutManagerにGridLayoutのようなレイアウトを設定したり、別のLayoutManagerを設定したりすることもできます。

ボタンの代わりに元のパネルにこのパネルを追加します。

+0

私の言葉は「入れ子にされたレイアウト」です。私は、いずれかのレイアウト(GrievousBodilyLayoutでさえ、まあまあ私はGridBagLayout)を使用して実行可能なGUIを作成することは想像できませんでした。 –

関連する問題