それはあなたが求めている解決策ではないかもしれませんが、あなたが持っている要件から、カスタムLayoutManager
はあなたが求めているものを達成できるように思えます. 改行を許可するカスタム レイアウト マネージャーを設計してContainer
( などPanel
) に割り当てることで、改行を許可する を作成できるはずPanel
です。
Java チュートリアルのコンテナ内でのコンポーネントのレイアウトに関する記事では、レイアウト マネージャーが Java でどのように機能するかについての一般的な情報が提供されます。特に、カスタム レイアウト マネージャーの作成では、カスタム レイアウト マネージャーを に適用する方法に関する情報が提供されます。Container
FlowLayout
( のデフォルトの Layout Manager ) の動作はPanel
、あなたが求めている動作にかなり近いようです。改行に機能を追加することは、欠けている部分のようです。
提案:おそらく、カスタム レイアウト マネージャーは、改行Component
を表す を使用して改行を追加する機能を持つことができます。これは、メソッドContainer
を使用してに追加できます。add()
たとえばComponent
、カスタム レイアウト マネージャーに (a hypothetical) などのクラス定数がありLineBreakLayout.LINE_BREAK
、それを に追加するとContainer
、カスタム レイアウト マネージャーに次の行に移動するように指示できます。おそらく、実装は次のようになります。
Panel p = new Panel(new LineBreakLayout());
p.add(new Label("First Line"));
p.add(LineBreakLayout.LINE_BREAK);
p.add(new Label("Second Line"));
上記の仮説 は、最初の行を 1 行に、2番目の行を 2 行目にLineBreakLayout
レンダリングします。Label
Label