Как я могу сделать текст JLabel продолжением на другую строку?
Многострочный текст в JLabel
Ответ 1
Вы можете сделать это, поместив 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);
Ответ 2
если вы хотите, чтобы ваш jLabel Text изменялся автоматически, например, в растягиваемом gridbag, чтобы его достаточно, чтобы поместить его текст в теги html следующим образом:
JLabel label = new JLabel("<html>First line and maybe second line</html>");
Ответ 3
Введите содержимое (т.е. поле свойства text) внутри тега <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>";
Он будет отображаться следующим образом:
Мерцание, мерцание, маленькая звезда,
Как я удивляюсь, что вы есть.
Вверх над миром так высоко,
Как алмаз в небе.
Ответ 4
Вы также можете использовать JXLabel из в библиотеку SwingX.
JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);
Ответ 5
Я использовал JTextArea для многострочных JLabels.
JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");
http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html
Ответ 6
В моем случае достаточно было разделить текст на каждом \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
Ответ 7
В HTML можно использовать (базовый) CSS.
Этот вопрос был связан из Многострочных JLabels - Java.
Ответ 8
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);
Ответ 9
почему вы даете сложные вещи... вы можете просто сделать это, поставив "\n" вместо html-тегов