web-dev-qa-db-ja.com

JLabelの複数行テキスト

JLabelのテキストを別の行に拡張するにはどうすればよいですか?

72
Jessy

コードにHTMLを挿入することで実行できます。

JFrame frame = new JFrame();
frame.setLayout(new GridLayout());
JLabel label = new JLabel("<html>First line<br>Second line</html>");
frame.add(label);
frame.pack();
frame.setVisible(true);
80
tddmonkey

たとえば、jLabel Textのサイズを伸縮可能なgridbaglayoutで自動的に変更する場合は、次のようにHTMLタグにテキストを入れるだけで十分です。

JLabel label = new JLabel("<html>First line and maybe second line</html>");
14
tObi

<html></html>タグ内にコンテンツ(つまり、「テキスト」プロパティフィールド)を入力します。したがって、<br>または<P>を使用して改行を挿入できます。

例えば:

String labelContent = "<html>Twinkle, twinkle, little star,<BR>How I wonder what you are.<BR>Up above the world so high,<BR>Like a diamond in the sky.</html>";

次のように表示されます。

キラキラ光る、
あなたは何だと思いますか。
非常に高い世界の上
空のダイヤモンドのように。

7
Web Think

複数行のJLabelsにJTextAreaを使用しました。

JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");

http://docs.Oracle.com/javase/7/docs/api/javax/swing/JTextArea.html

4
Seseel Lybon

SwingXライブラリ から JXLabel を使用することもできます。

JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);
4
user2287966

私の場合、\nごとにテキストを分割し、すべての行に対してJLabelを作成するだけで十分です。

JPanel panel = new JPanel(new GridLayout(0,1));
String[] lines = message.split("\n");
for (String line : lines) {
    JLabel label = new JLabel(line);
    panel.add(label);
}

上記でJOptionPane.showMessageDialogで使用しました

1
Dediqated
String labelText ="<html>Name :"+name+"<br>Surname :"+surname+"<br>Gender :"+gender+"</html>";
JLabel label=new JLabel(labelText);
label.setVisible(true);
label.setBounds(10, 10,300, 100);
dialog.add(label);
0
Harun ERGUL

HTMLでは se(basic)CSS が可能です。


この質問は Multiline JLabels-Java からリンクされています。

0
Andrew Thompson