web-dev-qa-db-ja.com

JLabelを次の行から開始する方法

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
10
Jessy

レイアウトマネージャー を試して、JPanel内のコントロールの配置とサイズを制御することをお勧めします。レイアウトマネージャーは、コントロールの配置、コントロールの配置場所、コントロールの大きさ、コントロール間のスペースの大きさ、ウィンドウのサイズを変更したときに何が起こるかなどを決定します。

さまざまなレイアウトマネージャーがたくさんあり、それぞれがさまざまな方法でコントロールをレイアウトできます。デフォルトのレイアウトマネージャーはFlowLayoutです。これは、これまで見てきたように、コンポーネントを左から右に並べて配置するだけです。それが最も簡単です。その他の一般的なレイアウトマネージャーは次のとおりです。

  • GridLayout-同じサイズの行と列を持つ長方形のグリッドにコンポーネントを配置します
  • BorderLayout-中央に1つの主要コンポーネントがあり、上、下、左、および右に最大4つの周囲のコンポーネントがあります。
  • GridBagLayout-すべての組み込みレイアウトマネージャーのBigBerthaであり、最も柔軟性がありますが、使用するのが最も複雑です。

たとえば、 BoxLayout を使用してラベルをレイアウトできます。

BoxLayoutは、コンポーネントを互いに積み重ねるか、それらを一列に配置します—選択します。 FlowLayoutのバージョンと考えるかもしれませんが、より優れた機能を備えています。これは、BoxLayoutを使用してコンポーネントの中央の列を表示することを示すアプリケーションの写真です。

BoxLayout screenshot

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);
...
19
John Kugelman

私はこのコードを読みました:

 pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.VERTICAL));

BoxLayoutにはVERTICALがないようです。検索すると、これは次のコードを使用して機能します。

 pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
5
princepiero

使用する必要があるものは次のとおりです。

JLabel economy = new JLabel("<html>Economy<br>Regularity</html>");
2
Emir

行ごとに個別のJPanelを作成し、各単語に合うように寸法を設定します。

JLabel wordlabel = new JLabel("Word");

JPanel Word1 = new JPanel();
Word1.setPreferredSize(new Dimension(#,#);

これは各単語で機能するはずです。次に、それらの各JPanelをメインのJPanelに追加できます。これにより、各Wordの横に他のコンポーネントを追加することもできます。

0
user3170404

手っ取り早い方法は、JLabel内でhtmlを使用することです。たとえば、<br/>タグを含めます。

それ以外の場合は、BoxLayoutを実装します。

0
waqasahmed