Bugs liés au swing ces jours-ci? J'en souffrais.
Par exemple, supposons que vous prépariez des composants JTextComponent tels que JTextField et JTextArea comme ceci. Il n'y a pas de différence particulière dans la quantité de caractères alphanumériques demi-largeur saisis, mais dès que je suis entré en japonais,
$ \ Huge {na-n-na-n-su-ka-ko-re} $ </ font>
Il y a aussi quelques bugs.
Quand j'ai cherché sur Google, j'ai trouvé une solution qui me permettait de continuer à appuyer sur repaint ()
sur la fenêtre en utilisant ʻInputMethodListener, donc même si je ne minimisais pas le cadre, j'ai trouvé la solution après avoir entré des caractères pleine largeur dans le composant, puis
while. Préparé une classe de correction de bogue pour continuer à frapper
repaint ()` du cadre avec.
python
final class SwingPaintBugFix extends Thread {
private Window w;
private boolean running = true;
private static SwingPaintBugFix bugfix = new SwingPaintBugFix();
private SwingPaintBugFix() {}
private SwingPaintBugFix(Window w) {
this.w = w;
}
public static void of(JTextComponent txtComp, Window w) {
w.addWindowListener(new WindowAdapter() {
@Override public void windowIconified(WindowEvent e) {
bugfix.stopRunning();
}
@Override public void windowDeiconified(WindowEvent e) {
bugfix = new SwingPaintBugFix(w);
bugfix.start();
}
});
txtComp.addInputMethodListener(new InputMethodListener() {
@Override public void inputMethodTextChanged(InputMethodEvent e) {
//Recevoir des caractères pleine largeur
bugfix.stopRunning();
bugfix = new SwingPaintBugFix(w);
bugfix.start();
}
@Override public void caretPositionChanged(InputMethodEvent e) {}
});
txtComp.addKeyListener(new KeyAdapter() {
//Recevoir des caractères demi-largeur
@Override public void keyTyped(KeyEvent e) {}
});
}
@Override public void start() {
new Thread(this).start();
}
@Override public void run() {
while (running) {
((Component) w).repaint();
}
}
private void stopRunning() {
running = false;
}
}
Cependant, je ne peux pas nier le fait d'exécuter constamment le processus avec while, et il faut du temps pour appliquer la classe de correction de bogue à tous les composants de type JTextComponent, j'ai donc décidé de rechercher une solution drastique.
Pour le moment, ça ne guérit pas même si je le redémarre plusieurs fois.
Vous ne pouvez pas mettre à jour vers la dernière version tout en vérifiant s'il y a des problèmes avec Windows Update.
Bien que je pensais "Ammendo", je ne pouvais pas m'en empêcher, alors je suis passé en mode sans échec. Depuis que j'ai confirmé que le bogue ci-dessus ne se produit pas en mode sans échec, je m'abstiendrai de "processus d'arrière-plan" et de "service" et je reviendrai au démarrage normal.
"Ce n'est pas ça, ce n'est pas ça ...", terminez les tâches autres que le mode sans échec une à une depuis le gestionnaire de tâches, et identifiez enfin la cause!
Il semble que l'utilitaire audio appelé "Nahimic Service" soit le coupable. Quand j'ai essayé d'arrêter ce type, le bug a été résolu avec brio. En regardant Gugu, il semble que ce gars soit en compétition de différentes manières autres que celles liées à l'interface utilisateur.
... Dans ce cas, créer une classe de correction de bogue n'avait aucun sens.
Recommended Posts