Flackern in JEditorPane()

Status
Nicht offen für weitere Antworten.

JayWorkDe

Mitglied
Hi :wink:,

Mein Probelm ist folgendes...

Ich habe eine JEditorPane(chat) für meinen Chat benutzt. Das Problem ist das ich da mit HTML arbeite und das nicht angezeigt wird wenn ich
Code:
chat.setText(chat.getText() + message);
mache. Deswegen lass ich alle Nachrichten in ein Vector speichern und dann mit chat.setText(VECTOR) reinschreiben.

Dann hab ich eine
Code:
JScrolledPane scrollChat = new JScrolledPane(chat)
;

Wenn ich jetzt mehrere Texte schreibe dann flackert das ohne Ende (chat.setDoubleBufferd(true) hab ich schon drin).

Ich denke das liegt daran, dass die ScrolledPane immer wieder von ganz oben bis nach unten Scrollen muss.


Mein kompletter Code:

Code:
JEditorPane chat;
JScrollPane scrollChat;

private Vector msg = new Vector();

protected void addMessage(String message)
{	
    msg.add(message);
    	    	
    String mess = msg.toString();
    
    chat.setText(mess);
    
    chat.setCaretPosition(chat.getDocument().getLength());
}


chat = new JEditorPane();    	
    	
chat.setEditable(false);
chat.setAutoscrolls(true);
chat.setBorder( new BevelBorder(BevelBorder.RAISED) );

chat.setContentType("text/html;charset=UTF16");
    	
chat.setDoubleBuffered(true);
    	   	
scrollChat = new JScrollPane(chat);
scrollChat.setWheelScrollingEnabled(true);
scrollChat.setForeground(Color.BLACK);
scrollChat.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollChat.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollChat.getViewport().add(chat);

Hat jemand eine Idee?
 

hdi

Top Contributor
Ich denke das liegt daran, dass die ScrolledPane immer wieder von ganz oben bis nach unten Scrollen muss.

Soweit ich das richtig verstanden habe liegt es denke ich eher daran:

Deswegen lass ich alle Nachrichten in ein Vector speichern und dann mit chat.setText(VECTOR) reinschreiben.

Denn solche Flacker-Effekte entstehen immer dann, wenn du etwas löscht und sofort neu malst.
Es muss doch irgendwie möglich sein, nur den neuesten Eintrag hinzuzufügen, auch mit HTML
 

JayWorkDe

Mitglied
Meines wissens nach funktioniert das nicht das man den neues Text einfach anfügt weil die JEditorPane() nicht für sowas geeignet ist.

Ich bin dankbar für jede Hilfe ;)
 

Kangaroo

Mitglied
Hallo,

ich weiß jetzt nicht, ob dir das bei deinem Problem hilft.

Aber evetuell wäre es einfacher, wenn du den Text in deas Document das zu dem JTextPane schreibst.

Das heißt mit getDocument() bekommst du das Document und dann document.insertString(...). Dort kann man auch einen Style angeben, wenn man es in ein StyledDocument castet.
 

JayWorkDe

Mitglied
Das Problem ist bei dem Document nur, dass ich z.B. Ich bin Fett geschrieben und ich Kursiv schreibe und das muss dann auch so ausgegeben werden und imo kann man als Style immer nur entweder Fett oder Kursiv ausgeben lassen.
 

Ebenius

Top Contributor
JayWorkDe hat gesagt.:
Meines wissens nach funktioniert das nicht das man den neues Text einfach anfügt weil die JEditorPane() nicht für sowas geeignet ist.

Ich bin dankbar für jede Hilfe ;)
Was funktioniert an JEditorPane's setText(String)-Methode denn nicht? Da kannst Du einfach wieder HTML rein tun, und es läuft.
 

JayWorkDe

Mitglied
Ebenius hat gesagt.:
JayWorkDe hat gesagt.:
Meines wissens nach funktioniert das nicht das man den neues Text einfach anfügt weil die JEditorPane() nicht für sowas geeignet ist.

Ich bin dankbar für jede Hilfe ;)
Was funktioniert an JEditorPane's setText(String)-Methode denn nicht? Da kannst Du einfach wieder HTML rein tun, und es läuft.


Da funktioniert nicht das wenn man setText() benutzt das nur das rein kommt was in setText() steht... da dass aber ein Chat ist muss immer irgendwas angehängt werden was dann natürlich auch in HTML sein muss.
 

Fu3L

Top Contributor
Hatte vor kurzem das selbe Problem...

Habs dann so gelöst, dass ich ne Klasse von JEditorPane abgeleitet habe. In der hab ich ne Methode append() dazugeschrieben, in der ich vom alten Text der JEditorPane das </body></html> abschneide, den neuen Teil anhänge und dann wieder das </body></html> anhänge (weil sonst das neue immer hinter dem </html> steht und entsprechend nicht angezeigt wird). Vielleicht wird jezz das Problem von JayWorkDe klarer...

Leider wird meine Methode bei dir wohl nix bringen, weil ich dabei auch nur setText() benutze und da alles nochmal einfüge (wobei es bei mir glaub ich nciht geflackert hat --> Hatte aber auch nur kurze Texte)
 

Verjigorm

Top Contributor
JayWorkDe hat gesagt.:
Da funktioniert nicht das wenn man setText() benutzt das nur das rein kommt was in setText() steht... da dass aber ein Chat ist muss immer irgendwas angehängt werden was dann natürlich auch in HTML sein muss.

Deine Grundsatzidee ist falsch!

Du musst nur den Text, den du im chat anzeigen willst speichern.
Du speicherst den Text aber als "<html>text...</html>"

die html-tags lass einfach weg und schreib :

Code:
chat.setText("<html>" + mess + "</html>");

So ist jede Veränderung bzw. jedes Anhängen an deine Text-Variable unabhängig von den html-tags
 

Ebenius

Top Contributor
Ich würde ein DefaultStyledDocument nehmen und mit Attributes arbeiten. Dann kann man schön ans Modell anhängen, ohne Ärger... Man muss dazu ein bisschen mehr lernen, aber das Resultat ist schöner...

Just my $0.02
 

JayWorkDe

Mitglied
Ebenius hat gesagt.:
Ich würde ein DefaultStyledDocument nehmen und mit Attributes arbeiten. Dann kann man schön ans Modell anhängen, ohne Ärger... Man muss dazu ein bisschen mehr lernen, aber das Resultat ist schöner...

Just my $0.02

Die Idee kam mir auch schon... ich hab´s auch schon mehrmals versucht aber ich bekomme das parsen vom HTML code nicht gebacken... :(. Es ist ja sehr ähnlich dem BBCode.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Flackern trotz DoubleBuffering AWT, Swing, JavaFX & SWT 8
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
G Swing Flackern nach Override von paintComponent() AWT, Swing, JavaFX & SWT 3
S Swing Flackern und ausbrechen bei neuzeichnung AWT, Swing, JavaFX & SWT 7
K AWT flackern trotz buffering AWT, Swing, JavaFX & SWT 4
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
J Flackern wie mit BufferedImage beheben AWT, Swing, JavaFX & SWT 4
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
R Flackern beim JPanel-Übermalen AWT, Swing, JavaFX & SWT 9
P SWT SWT flackern beheben AWT, Swing, JavaFX & SWT 9
D Undecorated JFrame ohne Flackern resizen AWT, Swing, JavaFX & SWT 21
K Flackern trotz Double-Buffering AWT, Swing, JavaFX & SWT 10
sylo Flackern des Mauszeigers bei DND AWT, Swing, JavaFX & SWT 4
G ColorReader, bei Fadenkreuz zeichnen mit repaint() flackern AWT, Swing, JavaFX & SWT 19
eQuest Swing Snake repaint() "flackern" AWT, Swing, JavaFX & SWT 13
JRTHEFROG Auflösungsabhängiges Flackern von Bildschirmmasken AWT, Swing, JavaFX & SWT 3
B JFrame flackern durch setSize() AWT, Swing, JavaFX & SWT 8
N Flackern beim neuzeichnen von JPanel AWT, Swing, JavaFX & SWT 19
S Falsche Position, Elemente erscheinen nicht, Flackern AWT, Swing, JavaFX & SWT 6
S animation Flackern trotz doppelpufferung wieso? AWT, Swing, JavaFX & SWT 2
U Flackern verhindern AWT, Swing, JavaFX & SWT 5
J Flackern beim ersten laden von JPanel AWT, Swing, JavaFX & SWT 4
T Labels verschieben / Flackern AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
E wie Schriftfarbe in JEditorPane verändern? AWT, Swing, JavaFX & SWT 10
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
N JEditorPane und automatische Scrollposition AWT, Swing, JavaFX & SWT 2
K JEditorPane Text einfügen AWT, Swing, JavaFX & SWT 4
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
J JEditorPane mit HTML füllen AWT, Swing, JavaFX & SWT 2
C JEditorPane und Gifs AWT, Swing, JavaFX & SWT 2
B Swing JEditorPane ohne Zeilenumbruch nach InputStream AWT, Swing, JavaFX & SWT 2
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
H Swing JEditorPane und HTML AWT, Swing, JavaFX & SWT 3
S JEditorPane Zeilen zählen AWT, Swing, JavaFX & SWT 5
C Swing JEditorPane: Caret nach Rechtsklick neu setzen AWT, Swing, JavaFX & SWT 4
X JEditorPane Größe in JDialog automatisch anpassen AWT, Swing, JavaFX & SWT 2
C JTextPane / JEditorPane ohne Keywords farbig machen AWT, Swing, JavaFX & SWT 4
S JEditorPane oder JTextPane? AWT, Swing, JavaFX & SWT 2
M Swing JEditorPane: Text formatieren AWT, Swing, JavaFX & SWT 2
F Swing JEditorPane Bild mittig einbinden AWT, Swing, JavaFX & SWT 5
H Swing HTML in einem JEditorPane zeilenweise hinzufügen ohne Inhalt jedes Mal neu zu laden AWT, Swing, JavaFX & SWT 4
B 2D-Grafik Zeilen drehen im JEditorPane AWT, Swing, JavaFX & SWT 3
H Plain Text in RTF JEditorPane? AWT, Swing, JavaFX & SWT 3
D Informationen über JEditorPane gesucht AWT, Swing, JavaFX & SWT 2
C Swing Scrollbalken in JEditorPane - WIE? AWT, Swing, JavaFX & SWT 3
destroflyer Swing UTF-8 in JEditorPane darstellen AWT, Swing, JavaFX & SWT 5
J Swing JEditorPane flackert AWT, Swing, JavaFX & SWT 2
F Swing Performanceproblem mit JEditorpane AWT, Swing, JavaFX & SWT 3
S Swing HTML-Text in JEditorPane einfärben AWT, Swing, JavaFX & SWT 5
I JTextPane und Hyperlink (ohne JEditorPane) AWT, Swing, JavaFX & SWT 5
P Swing JEditorPane mit HTMLDocument - Text hinzufügen AWT, Swing, JavaFX & SWT 2
T Swing JEditorPane Groesse berechnen AWT, Swing, JavaFX & SWT 2
N Swing JEditorPane mit Farbe und Font AWT, Swing, JavaFX & SWT 2
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3
B JEditorPane - Absätze werden nicht gespeichert AWT, Swing, JavaFX & SWT 12
K Verweise in JEditorPane AWT, Swing, JavaFX & SWT 6
B JEditorPane - Text und Graphik in HTML speichern AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane wort zu lang AWT, Swing, JavaFX & SWT 11
X Swing Inhalt einer JEditorPane in Datei abspeichern AWT, Swing, JavaFX & SWT 5
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
Developer_X Swing JEditorPane.paste(Lokale_HTML); AWT, Swing, JavaFX & SWT 11
W Swing dynamisch Buttons in JEditorPane erstellen AWT, Swing, JavaFX & SWT 2
H JScrollPane (mit JEditorpane ) resizing AWT, Swing, JavaFX & SWT 2
E Swing File lesen und in JEditorpane AWT, Swing, JavaFX & SWT 2
D GridBagLayout und JEditorPane (mehrere fragen) AWT, Swing, JavaFX & SWT 2
S JEditorPane soll HTML und dann Text anzeigen..? AWT, Swing, JavaFX & SWT 5
T HTML und JEditorPane AWT, Swing, JavaFX & SWT 6
Daniel_L jEditorPane - Formatierten Text in Zwischenablage kopieren? AWT, Swing, JavaFX & SWT 2
R JEditorPane Schriftart und Schriftgröße AWT, Swing, JavaFX & SWT 3
K Instanz von JEditorPane starten AWT, Swing, JavaFX & SWT 3
W HTML-Text mit relativer URL in JEditorPane einlesen AWT, Swing, JavaFX & SWT 10
& eigene Schriftart in JEditorpane AWT, Swing, JavaFX & SWT 2
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
M JEditorPane lädt HTML ohne Bilder AWT, Swing, JavaFX & SWT 2
DeeDee0815 JEditorPane + HTML + <img src=file> + JAR = FALSE AWT, Swing, JavaFX & SWT 3
G JEditorPane + F6 AWT, Swing, JavaFX & SWT 2
I Anordnungsprobleme bei JEditorPane AWT, Swing, JavaFX & SWT 5
ChMaster JEditorPane / HTMLEditorKit AWT, Swing, JavaFX & SWT 3
G JEditorPane | Homepage wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 8
J JEditorPane zeigt nicht alles AWT, Swing, JavaFX & SWT 2
I JEditorPane vorladen der Seiten unterbinden AWT, Swing, JavaFX & SWT 2
P JEditorPane mit HTMLEditorKit Text ausrichten AWT, Swing, JavaFX & SWT 2
T Projekt - ChatClient - JEditorPane - Smilies, Vektor AWT, Swing, JavaFX & SWT 2
N java.awt.Color zu HTML Farbcode (JEditorPane) AWT, Swing, JavaFX & SWT 1
T Grösse einer JEditorPane ändern AWT, Swing, JavaFX & SWT 5
G JEditorPane Zeilenumbruch verhindern AWT, Swing, JavaFX & SWT 2
F wie funktionier JEditorPane AWT, Swing, JavaFX & SWT 8
M jEditorPane String to html AWT, Swing, JavaFX & SWT 2
T DataFlavor für HTML-formatierten Text im JEditorPane AWT, Swing, JavaFX & SWT 8
G Welchen Listener für JEditorPane ? AWT, Swing, JavaFX & SWT 3
G HTML aus JEditorPane drucken AWT, Swing, JavaFX & SWT 2
F Frage zu JEditorPane und Text einfügen AWT, Swing, JavaFX & SWT 2
G JEditorPane HTML-Email versenden AWT, Swing, JavaFX & SWT 2
C getText() sinnlos bei HTMLEditorKit und JEditorPane! AWT, Swing, JavaFX & SWT 11
F Das Standardbild beim JEditorPane ersetzen? AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben