2

皆さん、私は Java に問題があります。5 行 1 列のパネルを作成しました。また、行の 1 つにボタンを追加し、最後にこのパネルをフレームに追加し、フレーム全体に引き伸ばされたボタンを受け取りました。ボタンのサイズを小さくして、使用しました

myButton.setSize(10,10);

しかし、それはうまくいかないようです、私も使用します

frame.pack();

それは問題かもしれません、事前に感謝します

4

3 に答える 3

4

サイズを自分で設定することはお控えください。LayoutManagerあなたのために仕事をする適切なものを選択する必要があります。

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

を使用していると言いますGridLayout。このレイアウトはかなり「柔軟性に欠ける」のでGridLayout、より柔軟な利点が必要な場合はGridBagLayout、試してみてください。

ニーズに合ったレイアウト マネージャーが見つからない場合は、恐れずに独自のレイアウト マネージャーを作成してください。(実装が比較的簡単な 5 つの方法です。)

現在のアプリケーションのスクリーンショットと、どのように表示したいかについての説明を投稿していただければ、さらにサポートさせていただきます。

いくつかの便利なリンク

于 2011-01-31T21:24:56.640 に答える
1

aloobe がより一般的な解決策を持っているように思われる場合。当面の解決策は、JPanel にボタンを追加し、Layoutmanager を GridLayout のようなレイアウトに設定するか、別の LayoutManager が適している場合は別の LayoutManager を設定することです。

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

于 2011-01-31T21:34:09.220 に答える
1

レイアウト マネージャー ( などGridLayout) を使用している場合、通常、 の呼び出しはsetSize()機能しません。これは、レイアウト マネージャーが最終的にコンテナー内の各コンポーネントのサイズと配置方法を決定するためです。

あなたができることはsetPreferredSize()setMaximumSize()および/またはを呼び出すことですsetMinimumSize()。使用中のレイアウト マネージャーに応じて、これらの要求の 1 つまたは複数が受け入れられます (これが実際の要求であるため)。呼び出すframe.pack()と、コンテナー (およびサブコンテナー) 内のすべてのサイズを適切なサイズに合わせようとします。

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

于 2011-01-31T21:31:11.157 に答える