117

で改行を表示するにはどうすればよいJLabelですか?

たとえば、私が望むなら:

「こんにちは世界」
何とか何とか何とか

これは私が今持っているものです:

JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);

表示される内容は次のとおりです。

Hello World!ブラブラブラ

これがばかげた質問であれば許してください。私は Swing の基礎を学んでいるところです...

4

6 に答える 6

190

文字列を で囲み、<html></html>で改行し<br/>ます。

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
于 2009-07-07T02:33:20.377 に答える
13

あなたはこれを試すことができます:

myLabel.setText("<html>" + myString.replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>") + "</html>")

これを行う利点は次のとおりです。

  • <br/>すべての改行を必ず ,に置き換えます。
  • これは自動的に eventual<とand を>それぞれ置き換え、レンダリングの大混乱を防ぎます。&lt;&gt;

それがすることは次のとおりです。

  • "<html>" +html先頭に開始タグを追加します
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;")エスケープ<>便宜上
  • .replaceAll("\n", "<br/>")br必要なもののすべての改行を(HTML 改行) タグに置き換えます
  • ...そして最後にタグを+ "</html>"閉じます。html

PS: このような古い投稿に目を覚ますことは非常に残念ですが、Java の信頼できるスニペットがあります。

于 2016-04-23T19:10:02.957 に答える
3

MultilineLabelコンポーネントは、Jideオープンソースコンポーネントで使用できます。

http://www.jidesoft.com/products/oss.htm

于 2009-07-07T07:43:09.720 に答える
2

JIDEMultilineLabelを推奨してくれたAakashに感謝します。JIDEのStyledLabelも最近拡張され、複数行をサポートするようになりました。他にも多くの優れた機能があるため、MultilineLabelよりもお勧めします。以下のStyledLabelの記事をチェックしてください。それはまだ無料でオープンソースです。

http://www.jidesoft.com/articles/StyledLabel.pdf

于 2011-11-04T15:56:30.677 に答える
2

できるよ

JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);

必要に応じて自動的にラップします。

于 2011-02-08T13:10:20.830 に答える
1

JLabelは、実際には基本的なHTMLを表示できるため、改行文字の使用に応答しません(たとえば、System.outとは異なります)。

対応するHTMLを入力して使用すると<BR>、改行が取得されます。

于 2009-07-07T02:39:47.900 に答える