私はBoxLayout Y軸を持つJPanelを持っており、このPanelに複数のJLabelを追加したいと考えています。ラベルはパネルの幅に合わせる必要がありますが、必要な高さだけを使用してください。あなたの誰かが私を助けることができますか?フィット両親がBoxLayoutを使用して幅コンポーネントを作成する方法BoxLayoutを使用してコンポーネントの親の幅に合わせる方法は?
0
A
答えて
3
?
BoxLayoutは、コンポーネントのサイズのmaximum size
を表します。 JLabel
の場合、ラベルのサイズが大きくならないように、優先サイズと最大サイズは同じです。
return new Dimension(getPreferredSize().width, Integer.MAX_VALUE);
しかしより簡単なアプローチは、あなたが必要な効果をIVEにパネルをnstingすることです:
だからあなたのような何かをする各JLabelののgetMaximumSize()
メソッドをオーバーライドすることができます。例えば
:
JPanel labelPanel = new JPanel(new GridLayout(0, 1));
labelPanel.add(new JLabel("one"));
labelPanel.add(new JLabel("two"));
JPanel wrapper = new JPanel(new BorderLayout());
wrapper.add(labelPanel, BorderLayout.PAGE_START);
frame.add(wrapper, BorderLayout.CENTER);
今labelPanelは必要なだけの高さになりますが、幅は、フレームの幅と幅も大きくなりますので、ラベルを埋めるために成長します。ネストされたパネルを使用せずに
別のオプションは、GridBagLayout
を使用することです。これは、利用可能なスペースを埋めるために各コンポーネントのサイズを変更できるようにするfill
制約をサポートしています。
詳細についてはLayout Managers上のSwingのチュートリアルからのセクションをお読みください。デフォルトでは
+0
非常にありがとう!これは私を助けた。以前はコンポーネントのminimumSizeとmaximumSizeを使用していました。 –
関連する問題
- 1. WrapPanelを親の幅に合わせる
- 2. 要素を親幅に合わせる方法CSS
- 3. 親の高さに合わせてボックスを作る方法は?
- 4. ワイドデザインのウェブサイトをブラウザの幅に合わせる方法
- 5. extjsを使用してウィンドウのサイズに合わせてラベルの幅を変更
- 6. 親の幅に合わせて画像のサイズを変更するjQuery
- 7. CSSラッパーの幅をモニターのサイズに合わせて調整する方法は?
- 8. 子供のdivを合わせて、親のdivの幅を展開し、horzontalスクロールウェブサイト
- 9. 疑似CSSを使用して水平線をコンテナの幅に合わせる
- 10. Androidの星の評価幅に合わせる方法
- 11. 親ウィンドウのサイズを子供に合わせる方法zk?
- 12. SWTを使用してコンポーネントの親を変更する方法は?
- 13. UIPickerViewの幅をビューに合わせる
- 14. テキストをビットマップの幅に合わせる
- 15. オーバーレイレイアウトのJPanelでBoxLayoutを使用してJPanelのJButtonをBoxLayoutに配置
- 16. javascriptを使って画面の解像度に合わせてボディの幅を設定する方法は?
- 17. 要素を自動的に親w/oテーブル/ javascriptの幅に合わせる
- 18. ScrollPaneをjavafxの親に合わせる
- 19. 列の幅をHTMLテーブルの内容に合わせる方法は?
- 20. Androidの画面幅に合わせてテキストを調整する方法
- 21. turn.js flipbookを親divに合わせる方法
- 22. オペラの「幅に合わせる」ボタン
- 23. コンテンツサイズに合わせて複数のdiv列を作成し、親にフィットさせる方法は?
- 24. 内部divは親の幅に合っていません
- 25. イメージを幅に合わせてアンドロイドでアスペクト比を維持する方法
- 26. sedと組み合わせてtailを使用する方法。
- 27. UIWebViewでコンテンツを幅に合わせる
- 28. コンテンツにセル幅を合わせる
- 29. Windows 10のピボット/タブヘッダーを画面の全幅に合わせる方法
- 30. テーブルの幅に合わせてメイン容器の幅を調整する
は 'BoxLayout'は、部品の' preferredSize'を尊重し、あなたは、例えば代わりにGridLayout' 'のように別のレイアウトを使用するか、' FlowLayout'中にあなた 'BoxLayout'の各ラインをラップする必要があります。しかし、もっと早い時期により良い助けを得るには、あなたの実際の出力と希望する出力の画像やアスキーアートを、最小限のサイズで、余分なスペースでリサイズすることができるように、[mcve]と投稿してください。 – Frakcool
ありがとうございました。これは、私がGridLayoutを使うときのように見えます:http://prntscr.com/e74ftl、ユーザがそれを使用しているときのラベルの数がわからないからです。そして、これはBoxLayout:http://prntscr.com/e74gr0で見ていますが、ラベルをパネルにして、文字列を表示するのに必要なだけの大きさではないようにします。 –
@Frakcool、 'デフォルトでBoxLayoutはコンポーネントのpreferredSizeを基準にしています。' - 実際はこの場合、BoxLayoutはコンポーネントの最大サイズを考慮します。通常、BoxLayoutは余分なスペースがあるとコンポーネントが大きくなるようにします。ただし、JLabelの優先サイズと最大サイズは同じであるため、ラベルは利用可能な領域を埋めることがありません。 – camickr