developer tip

JLabel의 여러 줄 텍스트

copycodes 2020. 10. 27. 08:20
반응형

JLabel의 여러 줄 텍스트


JLabel의 텍스트를 다른 줄로 확장하려면 어떻게해야합니까?


코드에 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);

예를 들어 확장 가능한 gridbaglayout에서 jLabel Text의 크기를 자동으로 조정하려면 텍스트를 다음과 같이 html 태그에 넣을 수 있습니다.

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

<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>";

다음과 같이 표시됩니다.

반짝 반짝 작은 별
당신이 뭔지 궁금 해요 하늘의 다이아몬드처럼
높은 세상 위로
.


SwingX 라이브러리 에서 JXLabel사용할 수도 있습니다 .

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

여러 줄 JLabels에 JTextArea를 사용했습니다.

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

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


제 경우에는 텍스트를 매번 분할 \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


HTML에서 (기본) CSS사용할있습니다 .


이 질문은 Multiline JLabels-Java 에서 연결되었습니다 .


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);

왜 복잡한 것을 주는지 ... html 태그 대신 "\ n"을 넣어서 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/685521/multiline-text-in-jlabel

반응형