JTextArea refresh et autoscroll
Bonjour,
je suis entrain de développer l'IHM d'un petit programme.
Dans ma fenêtre j'ai un bouton qui lance un long traitement.
J'ai donc ajouté un JtextArea à ma fenêtre pour faire une sorte de console, et y écrire l'état du traitement en cours.
Mais cette console me pose deux problèmes.
1) Afin d'écrire et de mettre à jour la zone j'ai écrit la fonction suivante :
Code:
1 2 3 4 5 6 7
|
private static void log(String message) {
String text = MainFrame.logArea.getText();
MainFrame.logArea.setText(text + "\n" + message);
MainFrame.logArea.setCaretPosition(MainFrame.logArea.getText().length() - 1);
MainFrame.logArea.update(MainFrame.logArea.getGraphics());
} |
Mais le update n'est pas très fluide, il fait clignoter la zone de texte.
Dois-je passer par un thread pour supprimer ces scintillements ?
2) Malgré la ligne suivante, la zone de texte ne sroll pas automatiquement, sauf à la fin du traitement :
Code:
1 2
|
MainFrame.logArea.setCaretPosition(MainFrame.logArea.getText().length() - 1); |
j'ai essayé en déclarant mon champ ainsi, mais toujours pareil :
Code:
1 2 3
|
DefaultCaret caret = (DefaultCaret) logArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); |
Comment faire pour afficher les dernières lignes ?
D'avance merci pour vos réponses,
Bebuck.