JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.add(economy);
pMeasure.add(regularity);
...
上記のコードを実行すると、次の出力が得られます。
Economy Regularity
各JLabelが新しい行で始まるこの出力を取得するにはどうすればよいですか?ありがとう
Economy
Regularity
レイアウトマネージャー を試して、JPanel
内のコントロールの配置とサイズを制御することをお勧めします。レイアウトマネージャーは、コントロールの配置、コントロールの配置場所、コントロールの大きさ、コントロール間のスペースの大きさ、ウィンドウのサイズを変更したときに何が起こるかなどを決定します。
さまざまなレイアウトマネージャーがたくさんあり、それぞれがさまざまな方法でコントロールをレイアウトできます。デフォルトのレイアウトマネージャーはFlowLayout
です。これは、これまで見てきたように、コンポーネントを左から右に並べて配置するだけです。それが最も簡単です。その他の一般的なレイアウトマネージャーは次のとおりです。
GridLayout
-同じサイズの行と列を持つ長方形のグリッドにコンポーネントを配置しますBorderLayout
-中央に1つの主要コンポーネントがあり、上、下、左、および右に最大4つの周囲のコンポーネントがあります。GridBagLayout
-すべての組み込みレイアウトマネージャーのBigBerthaであり、最も柔軟性がありますが、使用するのが最も複雑です。たとえば、 BoxLayout を使用してラベルをレイアウトできます。
BoxLayout
は、コンポーネントを互いに積み重ねるか、それらを一列に配置します—選択します。FlowLayout
のバージョンと考えるかもしれませんが、より優れた機能を備えています。これは、BoxLayout
を使用してコンポーネントの中央の列を表示することを示すアプリケーションの写真です。
BoxLayout
を使用するコードの例は次のとおりです。
JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
pMeasure.add(economy);
pMeasure.add(regularity);
...
私はこのコードを読みました:
pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.VERTICAL));
BoxLayoutにはVERTICALがないようです。検索すると、これは次のコードを使用して機能します。
pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
使用する必要があるものは次のとおりです。
JLabel economy = new JLabel("<html>Economy<br>Regularity</html>");
行ごとに個別のJPanelを作成し、各単語に合うように寸法を設定します。
JLabel wordlabel = new JLabel("Word");
JPanel Word1 = new JPanel();
Word1.setPreferredSize(new Dimension(#,#);
これは各単語で機能するはずです。次に、それらの各JPanelをメインのJPanelに追加できます。これにより、各Wordの横に他のコンポーネントを追加することもできます。
手っ取り早い方法は、JLabel内でhtmlを使用することです。たとえば、<br/>
タグを含めます。
それ以外の場合は、BoxLayoutを実装します。