12
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
4

5 に答える 5

23

レイアウト マネージャーをいじって、 内のコントロールの位置とサイズを制御する必要がありますJPanel。レイアウト マネージャーは、コントロールの配置、コントロールの配置場所、大きさ、コントロール間のスペース、ウィンドウのサイズを変更したときの動作などを決定します。

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

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

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

BoxLayoutコンポーネントを積み重ねるか、一列に並べるか、どちらかを選択できます。のバージョンと考えることができますFlowLayoutが、より優れた機能を備えています。BoxLayoutコンポーネントの中央の列を表示するために使用するアプリケーションの図を次に示します。

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);
...
于 2009-10-08T00:14:21.743 に答える
5

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

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

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

 pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
于 2013-03-31T00:02:30.533 に答える
3

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

JLabel economy = new JLabel("<html>Economy<br>Regularity</html>");
于 2011-08-16T21:23:06.093 に答える
0

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

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

于 2009-10-08T00:20:52.557 に答える
0

行ごとに個別の JPanel を作成し、各単語に合わせてサイズを設定します。

JLabel wordlabel = new JLabel("Word");

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

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

于 2014-01-20T16:15:30.237 に答える