JLabel의 너비를 초과하는 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"같은 텍스트를 어떻게 감쌀 수 있습니까? 텍스트를 html 태그로 묶으려고했지만 행운이 없습니다. 의견을 보내주십시오.JLabel에서 텍스트 줄 바꿈하는 방법?
답변
일반적인 접근 방식은 JLabel
을 사용하지 않고 대신 단어 랩 및 줄 바꿈 기능이 설정된 JTextArea
을 사용하는 것입니다. 그런 다음 JTextArea를 JLabel (테두리, 배경색 등)처럼 보이도록 꾸밀 수 있습니다. [DSquare의 의견에 따라 완전하게 줄 바꿈을 포함하도록 편집 됨]
또 다른 방법은 레이블에 HTML을 seen here과 같이 사용하는 것입니다. 주의 사항
당신은 HTML이
myLabel.getText()
지금 가능 로 (HTML을 포함 호출탈출 및/또는 문자 변환 일반 텍스트로 변환/해석 할 수 있습니다 특정 문자 알아서해야 할 수도 있습니다 # 1
편집으로 인해 : 다음은 JTextArea에 접근에 대한 예는 다음과 같습니다
,363,210import javax.swing.*;
public class JLabelLongTextDemo implements Runnable
{
public static void main(String args[])
{
SwingUtilities.invokeLater(new JLabelLongTextDemo());
}
public void run()
{
JLabel label = new JLabel("Hello");
String text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
// String text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa " +
// "quick brown fox jumped over the lazy dog.";
JTextArea textArea = new JTextArea(2, 20);
textArea.setText(text);
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
textArea.setOpaque(false);
textArea.setEditable(false);
textArea.setFocusable(false);
textArea.setBackground(UIManager.getColor("Label.background"));
textArea.setFont(UIManager.getFont("Label.font"));
textArea.setBorder(UIManager.getBorder("Label.border"));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(label, BorderLayout.NORTH);
frame.getContentPane().add(textArea, BorderLayout.CENTER);
frame.setSize(100,200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
그는 구체적으로 단어 감싸는 행동을 원하지 않지만, 하나의 감정가 행동을 원합니다. 즉'setLineWrap (true)'하지만'setWrapStyleWord (false)'를 가진 JTextArea가 작동한다는 뜻입니다. – DSquare
@ DSquare : 라인 랩에 대해 정확합니다. 그러나, 단어 길이를 더 이상 사용하지 않는 다른 모든 단어 (아마도 대부분의 경우)가 여전히 적절하게 포장되도록 단어 감싸기를 사용해야합니다. 그것이 없다면, 그들은 기대하지 않았던 (그러나 OP에서 언급되지 않은) 라벨 길이의 끝 부분과 unceremoniously 휴식 것입니다. 위의 예에서 단어 감싸기를 false로 설정하면 무슨 뜻인지 알 수 있습니다. – splungebob
나는 일반적으로 단어 감싸기가 바람직하다는 데 동의하지만 그게 문제가 아니다. 단어 줄 바꾸기는 기본 문자 줄 바꿈 동작을 재정의하므로 OP에서는 특히 원하지 않습니다. 'String text = "aaa ... aaa"'(공백없이 문제의 경우)를 설정하고 코드가 문제를 어떻게 해결하는지 확인하십시오. – DSquare
- 1. CSS에서 텍스트 줄 바꿈하는 방법
- 2. 열의 너비를 제한하고 텍스트 줄 바꿈하는 방법
- 3. div 주위에 텍스트 줄 바꿈하는 방법
- 4. 어노테이션 서브 타이틀에서 텍스트 줄 바꿈하는 방법
- 5. 함수를 줄 바꿈하는 방법?
- 6. NSString에서 줄 바꿈하는 방법?
- 7. UIPickerView에서 단어 줄 바꿈하는 방법
- 8. RowLayout의 내용을 줄 바꿈하는 방법?
- 9. html로 텍스트를 줄 바꿈하는 방법?
- 10. UILabel에서 텍스트를 줄 바꿈하는 방법
- 11. ImageView를 내용을 줄 바꿈하는 방법?
- 12. d3.svg.line을 줄 바꿈하는 방법?
- 13. SVG에서 텍스트를 줄 바꿈하는 방법
- 14. 길이에 따라 Textview를 줄 바꿈하는 방법?
- 15. Regex : 글꼴 문자를 줄 바꿈하는 방법?
- 16. 긴 텍스트를 텍스트 줄 바꿈하는 방법 android에서 텍스트보기로보기
- 17. C에서 docx 파일의 이미지에 텍스트 줄 바꿈하는 방법 #
- 18. 크리스털 보고서의 다음 줄에 텍스트 줄 바꿈하는 방법
- 19. 앵커 태그에 텍스트 URL을 자동으로 줄 바꿈하는 방법
- 20. 테이블 cell-xsl-fo에 텍스트 줄 바꿈하는 방법
- 21. PHPWord 텍스트를 단어 줄 바꿈하는 방법?
- 22. GNU M4에서 줄 바꿈하는 방법 _properly_
- 23. 공백없이 연속 텍스트를 줄 바꿈하는 방법?
- 24. iPhone : drawRect에서 텍스트를 줄 바꿈하는 방법?
- 25. Facebook C# SDK Post에서 줄 바꿈하는 방법?
- 26. richtextbox에서 특정 문자에 대해 줄 바꿈하는 방법 #
- 27. Makefile에 모든 매크로를 줄 바꿈하는 방법
- 28. HTML5에서 텍스트를 가운데에 배치하고 줄 바꿈하는 방법
- 29. RestEasy 클라이언트 : 목록 요소를 줄 바꿈하는 방법?
- 30. 파이썬 코드에서 주석을 줄 바꿈하는 방법
가능한 중복 단어가에는 공간 문자가 없을 때 솔루션을 제공하기 위해 실패합니다. 나는 jlabel의 너비를 초과하는 단어가 하나 밖에 없을 때이 경우 어떻게해야합니까? – Nadeem