JEditorPane flimrer når opdateret fra timer, men ikke fra keyDown
Jeg er ved at lave en Java baseret chat og for at få farvekoder, links etc med har jeg valgt at bruge JEditorPane + HTML. Problemet er bare, at jeg har sat en timer til at se om der er kommet noget nyt hvert 2. sekund, men når timeren kalder update metoden flimrer hele teksten, den anden metode der kalder update metoden er når man selv skriver en besked og trykker enter - her er der intet flimmer.Jeg har prøvet hele dagen uden held, så nu håber jeg nogen kan forklare, hvad der går galt og hvad jeg kan gøre?
Jeg opdaterer med den her metode:
public void updateConversation()
{
if (conversation.getLastUpdated() > lastUpdated)
{
txtLog.setText(conversation.toString());
Document doc = txtLog.getDocument();
try
{
doc.insertString(doc.getLength(), (""), null);
txtLog.setCaretPosition(doc.getLength());
}
catch (BadLocationException e) {}
lastUpdated = conversation.getLastUpdated();
}
}
Det her er min timer
Timer timer = new Timer();
timer.schedule(
new TimerTask()
{
@Override
public void run() {
updateConversation();
}
},
0,
2000
);
Den her opdaterer når man selv poster en ny besked (ingen flimmer her)
if (e.getKeyCode() == 10 && txtChat.getText().length() > 0)
{
irc.sendMessage(txtChat.getText());
conversation.saveMessage(irc.getUsername(), txtChat.getText(), irc.getHostname(), irc.getPrefix("#channel"));
updateConversation();
txtChat.setText("");
}