2017-11-06 6 views
0

Ich arbeite an einem Texteditor, und ich möchte den getippten Text anzeigen, was Zeile/Pausen enthalten kann. Aber JLabel zeigt keinen mehrzeiligen Text (ohne HTML zu verwenden - aber ich möchte nicht verwenden). Ich habe versucht, es in einer nicht editierbaren JTextArea (in einem JScrollPane) anzuzeigen, aber es wurde mit dem Mausrad nicht scrollbar.So zeigen Sie Text mit Zeilenumbrüchen in Java an

Zum Beispiel:

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

Wie kann ich mehrzeiligen Text in einem scrollbaren Container angezeigt werden?

+0

* "ohne Verwendung von HTML - aber ich möchte nicht verwenden" * Warum? – Frakcool

+0

Sie haben Ihr Label zum Bildlauffeld hinzugefügt, nicht die 'JTextArea' ??? – AJNeufeld

+0

Nun, wenn Sie mir sagen, wie man die Zeilenumbrüche des getippten Textes durch
Elemente ersetzt, sage ich ok. Ich dachte, es gibt eine andere Lösung, ohne HTML. – Saphyra

Antwort

2

Es ist schwer zu sagen, warum Ihre JTextArea aufhören würde zu scrollen, vielleicht ist es ein separates Problem. Dies sollte gut funktionieren.

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

Dies wäre eine bessere Antwort, wenn Sie erklären würden, warum Ihr Code das Problem löst, anstatt nur viele Zeilen Code zu speichern und zu erwarten, dass die Leser den Unterschied erkennen. – VGR

+0

@VGR gut mein Code ist nicht verwandt mit dem einen OP veröffentlicht, da es Adressen 'Ich habe versucht, es in einem nicht editierbaren JTextArea' Teil anzuzeigen, die keinen Code angehängt hatte. –