5

次の JLabel コードがあります。

JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));

私がやりたいのは、2 つの行の間の行の高さ/間隔を制御できるようにすることです。

PS: ブレークラインの代わりに段落を使用することも検討しましたが、同じことです。また、css を使用せずに html タグ内でそれを実行できるかどうかはわかりません (Java Swing の JLabel の html コード内で css を使用することはできません)。

4

6 に答える 6

5

これは機能するはずですが、そうではありません。 color: greenしかし動作します。

content.add(new JLabel("<html><p style=\"line-height: 150%;\">hi<br>world</p></html>"));

行の高さは機能しないと思います。CSS を使うとしたら、そのようにするので、そのようにはできないかもしれません。 これは、HTML がすばやく動作するかどうかをテストするために使用できる便利なツールです。

于 2010-06-24T21:17:24.353 に答える
3

Java は<p>タグと CSSマージン属性をサポートしているため、次の解決策を使用できます。

new JLabel("<html>first line<p style='margin-top:-5'>second line");

PS 現在、html タグを閉じる必要はありません。

于 2013-04-20T04:11:11.083 に答える
3

HTMLEditorKit の setStyleSheet(...) メソッドを確認してください。これまで使用したことはありませんが、基本的なサポートが提供されていると思います。

それ以外の場合は、JTextPane を使用して行間隔を制御できます。私はあなたが使うと思います:

StyleConstants.setLineSpacing(...);

次に、前景/背景などを変更して、テキスト ペインをラベルのように見せることができます。

于 2010-06-24T20:10:37.680 に答える
2

うーん..サポートされているプロパティに固執すれば、JLabelのCSSは私にとってはうまくいくようです。試してみてくださいpadding(またはmargin)そしてfont-size

someJLabel = new JLabel("<html><body><p style=\"padding:10; font-size:30\">First line</p><p style=\"padding:10; font-size:20\">Second line</p></body></html>");
于 2010-06-25T14:26:16.450 に答える
0

LayoutManager を使用して、2 つのラベルを使用し、2 つの間の距離と空白を設定してみてください。私自身、GridBoxLayoutが好きです。

編集:GridBagLayout。おっと!

于 2010-06-24T20:10:19.547 に答える
-2

空の境界線を設定すると、次のようになりますか?

label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

メソッド構文BorderFactory.createEmptyBorder(int top、int left、int bottom、int right)

于 2010-06-25T04:36:20.907 に答える