私は3つのJLabelと3つのJTextAreaを持っています。私はそれらを中心にborderlayoutに持っていますが、私は別の行にそれぞれが欲しいと思います。それは起こっていません。そして、Googleの改行javaのトップ10の検索結果は問題を解決しません。シンプルな改行はどうすればできますか?<br>? n? Javaの改行
答えて
これがSwingアプリケーションの場合は、layout managerを使用してフィールドをコンテナに配置する必要があります。
改行はSwingオブジェクトの配置に役立ちません。 JPanelの中央にレイアウトを配置する必要があります。つまり、境界線レイアウトの中心は単一のSwingオブジェクトJPanelでなければならず、各ウィジェットをスタックできるスタイルに設定する必要があります。 GridLayout(6,1)がそれを行うかもしれません。
は、スタータ用のGridLayoutを使用してみてください:
panel.setLayout(new GridLayout(0,2));
// the order of added components is important
panel.add(labelA);
panel.add(textAreaA);
panel.add(labelB);
panel.add(textAreaB);
...
はあまりにもきれいに見えるしませんが、それはあなたが開始されます。
LayoutManagerを新しいパネルに設定しないと、HTMLレイアウトのように動作するFlowLayoutが使用されます。しかし、FlowLayoutに意図された改行はありません。コンポーネントの後にコンポーネントを置くだけで、空き領域の終わりに達してから新しい行が開始されます。
レイアウトを制御したい場合は、FlowLayoutを使用しないでください。あなたが知って取得したい場合があります
レイアウトマネージャは、次のとおりです。
- のBorderLayout - 非常に良いあなたがサイズ変更内容をしたい場合
- のGridLayout - シンプルがnull
- 幅と高さのグリッドに等しい - あなたが使用することができます絶対位置を取得するために各コンポーネントのsetBounds
さらに3つありますが、これら3つはパネルの95%をレイアウトする必要があります。
GridLayoutまたはGridBagLayoutなどのレイアウトマネージャを使用できます。後者はGUIジェネレータによって生成されるコードにのみ推奨されますが、私はそれが私に最も柔軟性を与えるので、それを好むものです。
JPanel panel = new JPanel();
GridBagLayout layout = new GridBagLayout();
panel.setLayout(layout);
layout.add(label1, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
layout.add(area1, new GridBagConstraints(1, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
layout.add(label2, new GridBagConstraints(0, 1, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
layout.add(area2, new GridBagConstraints(1, 1, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
layout.add(label3, new GridBagConstraints(0, 2, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
layout.add(area3, new GridBagConstraints(1, 2, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
panel.add(label1);
panel.add(label2);
panel.add(label3);
panel.add(area1);
panel.add(area2);
panel.add(area3);
もちろん、これは突然醜いように見えますが、始めるべきです。
またBorderLayoutを乱用することができます
JPanel panel = new JPanel(new BorderLayout());
JPanel topRow = new JPanel();
panel.add(topRow, BorderLayout.PAGE_START);
topRow.add(label1);
topRow.add(area1);
JPanel middleRowBox = new JPanel(new BorderLayout());
panel.add(middleRowBox, BorderLayout.CENTER);
JPanel middleRow = new JPanel();
middleRowBox.add(middleRow, BorderLayout.PAGE_START);
middleRow.add(label2);
middleRow.add(area2);
JPanel bottomRowBox = new JPanel();
middleRowBox.add(bottomRowBox, BorderLayout.CENTER);
JPanel bottomRow = new JPanel();
bottomRowBox.add(bottomRow, BorderLayout.PAGE_START);
bottomRow.add(label3);
bottomRow.add(area3);
bottomRowBix.add(new JPanel(), BorderLayout.CENTER);
多くのUIコンポーネントを構築した後、私はもうGridBagLayoutだけを使用しています。もう少し作業はありますが、ビューが適切に拡大することを保証することができます。 – aperkins
多くのUIコンポーネントを構築した後、GridBagLayoutを使用しなくなりました。これは素晴らしいセルスケーリングとアライメントオプションを提供しますが、単純なLayoutManagerを使用したパネルではできないことは何もありません。 。あなたが何か間違ったことをすると、一時間を過ごすことができます。 – Stroboskop
- 1. __android_log_print改行なしで '/ n'改行CR
- 2. imagettftext \\ n改行パズル
- 3. String.replaceAll()と\ n改行
- 4. 改行/ nを改行で改行します。
- 5. Javaの改行改行サイズ
- 6. 改行「\ n」はYAMLファイルで
- 7. simple_formatと2+改行(\ n)
- 8. JSの改行\ nの問題
- 9. LinuxのLog4jの改行(%n)パターン
- 10. XPathでのconcat()による改行(\ n)
- 11. javaスクリプトの改行置換
- 12. 改行文字\ nを改行として表示できますか<br />?
- 13. C#とASP.NETの改行バリエーションは何ですか? (\ r \ nと\ n)
- 14. Laravel <br>改行
- 15. 改行を表示する(\ r \ n)
- 16. 正規表現\ n(改行)エラー
- 17. 改行\ nまたはauthnetの改行AIM x_description生成されたメールのフィールド
- 18. Java - unix改行を改行に変換する
- 19. 改行改行
- 20. 正規表現(。*?(?:*?\ n))は改行をキャプチャするのはなぜですか?</p> <pre><code>foobar¬ nextline </code></pre> <p><code>¬</code>は、改行\ nを表し<code>foobar¬</code> に一致する正規表現<code>(.*?(?: *?\n))</code>:
- 21. bash - 変数の改行を置き換える方法は?私は、すべての行が<code>\\n</code>でフィードを交換したい</p> <pre><code>my_var="foo bar baz" echo ${my_var//\n/\\n} </code></pre> <p>:
- 22. <form></form>内の改行/改行を防ぐ方法?
- 23. インデントされた改行内の改行<source>タグ
- 24. XSLT <改行とスパン - ><スパン
- 25. Perlはregexs:空白はスペースや改行でのみ構成さの<code>bar</code>スペースや改行
- 26. 改行の書式設定<textarea>
- 27. RichTextBox改行後の改行
- 28. Charの改行改行(C#)
- 29. Javaペア<T,N>クラス実装
- 30. PHP - XHTMLの改行<br />
あなたはあなたのJPanelにあなたのコンポーネントを追加する方法を示していますができますか? – akf
mainPanel.add(aLabel); mainPanel.add(aScroller); mainPanel.add(bLabel); mainPanel.add(bScroller); mainPanel.add(cLabel); mainPanel.add(cScroller); –
これは次のように機能しました: mainPanel.setLayout(new BoxLayout(mainPanel、BoxLayout.PAGE_AXIS)); –