2017-11-06 8 views
0

저는 텍스트 편집기를 사용하고 있으며 줄 바꿈을 포함 할 수있는 입력 된 텍스트를 표시하려고합니다. 그러나 JLabel은 HTML을 사용하지 않고 여러 줄의 텍스트를 표시하지 않지만 사용하고 싶지는 않습니다. 편집 할 수없는 JTextArea (JScrollPane)에 표시하려고했지만 마우스 휠로 스크롤 할 수 없게되었습니다. 예를 들어자바에서 줄 바꿈을 사용하여 텍스트를 표시하는 방법

:

JTextArea textArea = new JTextArea(); 
JLabel label = new JLabel(textArea.getText()); 
JFrame.add(new JScrollPane(label)); 

어떻게 스크롤 컨테이너에 여러 줄의 텍스트를 표시 할 수 있습니까?

+0

* "HTML을 사용하지 않고 -하지만 사용하고 싶지 않습니다"* 왜? – Frakcool

+0

'JTextArea'가 아닌 스크롤 패널에 라벨을 추가했습니다. ??? – AJNeufeld

+0

글쎄, 입력 된 텍스트의 줄 바꿈을
요소로 대체하는 방법을 말해 준다면, 나는 ok라고 말합니다. 나는 HTML이없는 또 다른 해결책이 있다고 생각했다. – Saphyra

답변

2

왜 JTextArea가 스크롤을 멈출 지 말하기가 어렵습니다. 별개의 문제 일 수 있습니다. 이 잘 작동합니다.

package test; 

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.SwingUtilities; 

public class Test { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(() -> { 
      JFrame f = new JFrame(); 
      JTextArea ta = new JTextArea("a\nb\nc\nd\ne\nf\ng\nh"); 
      ta.setEditable(false); 
      JPanel p = new JPanel(); 
      p.setLayout(new BorderLayout()); 
      p.add(new JScrollPane(ta)); 
      f.add(p); 
      f.setSize(100, 100); 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.setVisible(true); 
     }); 
    } 
} 
+1

많은 코드 줄을 버리고 독자가 차이점을 발견 할 것을 기대하는 대신 * 왜 * 귀하의 코드가 문제를 해결하는지 설명했다면 더 나은 대답이 될 것입니다. – VGR

+0

@VGR 잘 코드가 붙어 있지 않은 편집 할 수없는 JTextArea 부분에 표시하려고 했으므로 내 코드가 게시 된 OP와 관련이 없습니다. –