で設定した恒久的なサイズJPanel内のJFrame?
-
11-07-2019 - |
質問
私の現在の問題としていまJFrame、2x2GridLayout.内の広場、JPanelを表示グリッド私はこの分野の日はjava swing図書館...見
Javaは自動的に拡大各JLabelに合わせて画面になります。いたいでけする空色(水)の黒ボーダーとなる灰色の空間です。があるので、できるだけでセットのサイズのJPanelを恒久的にその思い通りに変更するサイズのJFrameを百万倍の前に取得し、正確な寸法で、グレースペースが消える?
もう設定のサイズのボタンでいなくてはいけない、というので(BorderLayout
でに使用されるようになっていボタンやテキストフィールド)
解決
ご希望の場合は二つのcheckerboardsバーニーズニューヨークに、同じサイズ、そしてする必要がありまして含まれる各自 JPanel
.それぞれの親JPanelのをレイアウトの種類 GridBagLayout
.セットのpreferedSize各長文過ぎてスミマセン><componentを追加してくれる、そいからです。GridBagLayoutはデフォルトの腹板のセンターが親会社のJPanel.などのウィンドウがリサイズ、JPanel親会社の地域ます大きくなるものをつくりたいというものの、長文過ぎてスミマセン><部品内部の大きさに変更はありません。
少し大きいデジタルカメラモデルへアクセス広場規模右サイズとしてウィンドウのサイズが変更されている情報を利用することcheckboardスクエアする JPanel
と BorderLayout
レイアウトマネージャに加える JLabel
(青色の背景色は、 BorderLayout.CENTER
立地です。
など充実した設備でお客様の旅行ボタンしてみて思ったこと。
JPanel theButtonPanel = new JPanel(new BorderLayout());
JButton button1 = new JButton("Fire");
JButton button2 = new JButton("Pass");
JButton button3 = new JButton("Forfiet");
JPanel innerButtonContainer = new JPanel(new Grid(1, 3, 8, 8));
innerButtonContainer.add(button1);
innerButtonContainer.add(button2);
innerButtonContainer.add(button3);
theButtonPanel.add(innterButtonContainer);
最後に、使用を考慮してデザインツールイングユーザーインターフェースです。ボタンひいて 優れたUI デザイナー組み込まれている。ダウンロードボタンひ こちらの.
他のヒント
GridBagLayout は、本当に使用したいものです。 GridLayoutは、サイズの制約に関係なく、レイアウトの各コンポーネントに同じサイズを強制します。 GridBagLayoutは、はるかに強力で複雑です。 APIページを調べてください。それのための。 GridBagLayout
を使用すると、コンポーネントはグリッドスペース全体を埋めることができず、必要なサイズを維持できます。コンポーネントのサイズが変わらないようにするには、使用可能な3つのサイズ制約をすべて設定します。
water.setPreferredSize(new Dimension(20, 20));
water.setMinimumSize(new Dimension(20, 20));
water.setMaximumSize(new Dimension(20, 20));
ボタンには、ブライアンの言及。彼が提案するGridLayoutを使用するか、すべてのボタンを同じサイズにしたくない場合はFlowLayoutを使用できます。メインのパネルではなく、その内部パネルにすべてのボタンを追加します。
最上位フレームで setResizeable(false)
を実行できる場合、レイアウトマネージャーをnullに設定し、setBoundsを介して各場所とサイズをハードコードできます。これは私がそれをする方法です(もちろんサイズ変更に付随して)。
サードパーティのレイアウトマネージャーである TableLayout
を使用して、このような問題を解決できました。それをダウンロードしてチュートリアルを読む必要がありますが、重要なのは、レイアウト内の位置にJButtonを追加するときに位置合わせをCENTERに設定することです。