TextArea, JTextPane, JEditorPane

TeNNoX

Mitglied
Hey, ich suche nach dem richtigen Textfeld für meinen Chat :)

hab schon ein bischen rumprobiert und bin mit TextArea ganz gut klargekommen, doch das ist mir aufgefallen, das man nur eine Formatierung für den ganzen Text festlegen kann... :shock: ich will aber die namen Fett machen oder vielleicht mal was farbig o.ä. Dann habe ich JTextPane ausprobiert, aber da konnte man irgendwie nicht scrollen... :eek: Ich habe mehrere Sachen ausprobiert, z.b. JScrollPane, aber irgendwie komme ich damit gar nicht klar :oops: es erscheint keine Scrollbar und durch history.setCaretPosition(...) verändert sich gar nichts...

also was würdet ihr mir empfehlen und wie muss ich das dann machen?

Lg

TeNNoX
 
Zuletzt bearbeitet:

GUI-Programmer

Top Contributor
Du kannst mit allen 3en scrollen, wenn du die ScrollPane richtig verwendest:
Java:
JScrollPane scrollPane = new JScrollPane(deineTextKomponente);
// Alternativ:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(deineTextKomponente);

// Danach:
deinUebergeordneterContainter.add(scrollPane);

Ich würde auf jeden Fall nicht die JTextArea verwenden, aus den von dir bereits festgestellten Gründen; sie ist eben "nur" dafür gamacht um einfachen Plain-Text anzuzeigen bzw. zu editieren.

Die Unterschiede zwischen JEditorPane und JTextPane kannst du ja der Doku und Google entnehmen.
 
Zuletzt bearbeitet:

TeNNoX

Mitglied
Du kannst mit allen 3en scrollen, wenn du die ScrollPane richtig verwendest:
...

So hab ich's eingegeben,aber keine Scrollbar erscheint... muss ich nicht noch angeben welche scrollbar (horizontal/vertikal) angezeigt werden soll?
Java:
history = new JTextPane();
JScrollPane scrollHistory = new JScrollPane(history);
history.setText("Waiting for Client...\n");
history.setBounds(0, 20, 500, 300);
this.add(history);
this.(scrollHistory);
history.setFont(new Font("Courier Sans MS", Font.PLAIN, 15));
history.setEditable(false);
history.setMaximumSize(new Dimension(500, 300));
 

GUI-Programmer

Top Contributor
1. Meintest du in Zeile 6 etwa:
Code:
this.add(scrollHistory);
???

2. Du darfst nicht, wenn du schon ohne LayoutManager arbeitest, was nicht zu empfehlen ist, die Bounds der JTextPane einstellen, da die ja im Viewport deiner JScrollPane liegt und "adden", sondern musst dies bei deiner JScrollPane tun.

Also so in etwa:
Java:
history = new JTextPane();
JScrollPane scrollHistory = new JScrollPane(history);
history.setText("Waiting for Client...\n");
scrollHistory.setBounds(0, 20, 500, 300);
this.add(scrollHistory);
history.setFont(new Font("Courier Sans MS", Font.PLAIN, 15));
history.setEditable(false);
history.setMaximumSize(new Dimension(500, 300));

[EDIT]
Außerdem kannst du mit den beiden Textkomponenten JTextPane und JEditorPane auch Dinge, wie etwa Syntaxhighlighting anstellen!
[/EDIT]
 
Zuletzt bearbeitet:

Fab1

Top Contributor
muss ich nicht noch angeben welche scrollbar (horizontal/vertikal) angezeigt werden soll?

Nein, da VERTICAL/HORIZONTAL SCROLLBAR AS NEEDED der Standard Wert ist. Somit musst du bei der Scroll Bar Policy nicht zwingend etwas ändern.


Problem sollte aber eh mit GUI-Programmers Hilfe gelöst werden. :)
 

TeNNoX

Mitglied
1. Meintest du in Zeile 6 etwa:
Code:
this.add(scrollHistory);
???

2. Du darfst nicht, wenn du schon ohne LayoutManager arbeitest, was nicht zu empfehlen ist, die Bounds der JTextPane einstellen, da die ja im Viewport deiner JScrollPane liegt und "adden", sondern musst dies bei deiner JScrollPane tun.

zu 1. Ja meine ich... ???:L

zu 2. Danke der Part geht schon mal :D
Die Scrollbar kommt jetzt wenn sie benötigt wird ;)
Jetzt nur zum verständniss... was müsste ich ändern wenn ich will, das die scrollbar imer angezeigt wird?
oder das die text nicht gebrochen wird sondern auch eine horizontale scrollbat erscheint?

Und wie mache ich das am besten mit dem formatieren des Textes?

@layout manager: ich komme damit leider nciht so wirklich klar, muss mich mal nach einem tutorial dafür umsehen :bahnhof:

danke schonmal


[EDIT]Komischerweise wird in JTextPane Shift+Enter nicht als enter erkannt ???:L ???:L kann man das ändern?[/EDIT]
 
Zuletzt bearbeitet:

Fab1

Top Contributor
Java:
// für die Anzeige der Scrollbars
scrollHistory.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollHistory.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

//und für den automatischen Zeilenumbruch

history.setLineWrap(true);
 

TeNNoX

Mitglied
Gut, und wie kann ich den Text jetzt formatieren?
ich denke doch mit
Java:
doc.insertString(doc.getLength(), "Client: ", new AttributeSet());
aber AttributeSet kann man nicht instanzieren...
 

GUI-Programmer

Top Contributor
Gut, und wie kann ich den Text jetzt formatieren?
ich denke doch mit
Java:
doc.insertString(doc.getLength(), "Client: ", new AttributeSet());
aber AttributeSet kann man nicht instanzieren...

Was genau meinst du mit formatieren??? Etwas farblich hervorheben, den Link zum Syntaxhighlighting hast du ja bereits. Oder irgendwas am Text ändern?
 

xehpuk

Top Contributor
Fett und rot:
Java:
final MutableAttributeSet a = new SimpleAttributeSet();
StyleConstants.setBold(a, true);
StyleConstants.setForeground(a, Color.RED);
doc.insertString(doc.getLength(), "Client: ", a);
 

GUI-Programmer

Top Contributor
Eine gute Lösung wurde von xehpuk bereits genannt. Ansonsten, wenn du etwas Spezielles hervorheben willst, musst du eben einen bestimmten Teil, des hoffentlich mit HTML geschriebenen Textes HTML spezifisch hervorheben, z.B. Fett:
Code:
<b>dieser Text ist bei HTML fett</b>
.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Textarea Allgemeine Java-Themen 7
T Textarea nach nur 1 wort durchsuchen Allgemeine Java-Themen 3
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
J TextArea einlesen, mit string Allgemeine Java-Themen 2
MiMa Liste von Pfaden in eine textArea schreiben Allgemeine Java-Themen 7
C Zahl im Textarea anzeigen lassen Allgemeine Java-Themen 8
Stillmatic MVC Aktualisierung von TextArea Allgemeine Java-Themen 4
S zeilenumbruch in TextArea Allgemeine Java-Themen 5
H x,y von Markierung in TextArea Allgemeine Java-Themen 5
G einzelne zeilen aus textArea auslesen Allgemeine Java-Themen 8
1 TextArea: Repaint zu spät Allgemeine Java-Themen 4
B Formatieren von text in ner TextArea Allgemeine Java-Themen 6
S Word-Dokument in Textarea anzeigen Allgemeine Java-Themen 2
C JTextPane + HTMLEditorKit withe space problem Allgemeine Java-Themen 0
P JTextPane mit Java (eclipse) Syntax Highlighting Allgemeine Java-Themen 4
E JTextPane.getText() funktioniert nicht Allgemeine Java-Themen 15
H JTextPane JPopupMenu anfügen Allgemeine Java-Themen 2
R JTextPane (JEditorPane) ignoriert JScrollPane Allgemeine Java-Themen 5
O java StreamCorrupted Error beim Belegen einer JTextpane Allgemeine Java-Themen 5
Y Zeichen verschiedenfarbig in einer JTextPane darstellen Allgemeine Java-Themen 17
G JTextArea vs JTextPane Allgemeine Java-Themen 2
M Roll Over Effekt bei JTextPane Allgemeine Java-Themen 3
M JTextPane Mausklick auf bestimmte Wörter startet Aktion Allgemeine Java-Themen 8
H JTextPane -- Text anfügen Allgemeine Java-Themen 3
T JEditorPane oder JTextPane Applets und Flash anzeigen Allgemeine Java-Themen 7
W Relative Pfadangabe in JEditorPane zur lokalen Datei Allgemeine Java-Themen 2
A Auswahl eines JEditorPane das Sich in einem JScrollPanel Befindet Allgemeine Java-Themen 2
A jEditorPane Html Datei öffnen (code) Allgemeine Java-Themen 3
C JEditorPane langsam großes HTML Allgemeine Java-Themen 8
StrikeTom Swing JEditorPane automatischer Umbruch Allgemeine Java-Themen 4
W CSS in JEditorPane Allgemeine Java-Themen 32
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
S Swing mit JEditorPane per HTML auf Bilder in JAR zugreifen. Allgemeine Java-Themen 3
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
T JavaScript aus HTML im JEditorPane ausführen? Allgemeine Java-Themen 5
X Ausgabe auf JEditorPane Allgemeine Java-Themen 5
Iron Monkey JEditorPane mit Refresh von Meta Allgemeine Java-Themen 7
S ImageTag in JEditorPane Allgemeine Java-Themen 2
U JEditorPane & copy'n'paste Allgemeine Java-Themen 34
O breite des inhalts eines jeditorpane Allgemeine Java-Themen 2
G JEditorPane Zeilenumbruch Allgemeine Java-Themen 1
G JEditorPane will nicht scrollen! Allgemeine Java-Themen 2
D Suchfunktion innerhalb Jeditorpane Allgemeine Java-Themen 6
G JEditorPane: angezeigter Text Allgemeine Java-Themen 21
D Jeditorpane + einlesen ausserhalb des Jar Allgemeine Java-Themen 4
T JApplet - JEditorPane gegen JPanel tauschen Allgemeine Java-Themen 2
T JEditorPane aktualisieren Allgemeine Java-Themen 14
V Hyperlink mit JEditorPane Allgemeine Java-Themen 40
V Hyperlink hervorheben mit Hilfe von der Klasse JEditorPane Allgemeine Java-Themen 7
S JEditorPane / JScrollPane und nach unten scrollen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben