Um benutzerdefinierte Schaltflächenbeschriftungen in einem Eingabedialog zu erhalten, habe ich den folgenden Code erstellt:
%Vor%Wie kann ich den Fokus (Cursor) in das Textfeld bewegen, während der Dialog angezeigt wird?
AKTUALISIEREN
Das geht bei mir nicht, ich meine das Textfeld hat keinen Fokus: Betriebssystem: Fedora - Gnome
%Vor%Dialogfokus zeigt, wie Sie den Fokus auf jede Komponente in einem Modal festlegen können Dialog.
als letztes Argument ist null die Lösung. Zumindest hat es für mich funktioniert.
%Vor%Aber selbst diese Lösung bringt ein anderes Problem:
Fokussierte -Komponente und Standard -Komponente unterscheiden sich. Standard-Komponente oder Standard-Schaltfläche ist die Schaltfläche, die Onclick ausgelöst wird, wenn Sie ENTER KEY
drücken. Das letzte Argument definieren die Standardkomponente, die auch den Fokus erhält und die Übergabe von Null bringt das Problem, keine Standardkomponente zu haben!
Ich habe es auf diese Weise für meinen Code gelöst, aber ich denke, es ist keine bewährte Methode:
Ich hatte das gleiche Problem mit dem RequestFocusListener (), der unter Linux nicht funktioniert, nachdem ich die Diskussion auf Ссылка verfolgt habe Ich habe festgestellt, dass das Hinzufügen eines invokeLater es für jetzt behoben hat ...
%Vor%Der Trick besteht darin, (a) einen AncestorListener für die Textkomponente zu verwenden, um den Fokus anzufordern, und wenn der Fokus erneut verloren geht (vorausgesetzt, die Standardschaltfläche), fragen Sie den Fokus ein zweites Mal mit einem FocusListener nach der Textkomponente ( aber danach nicht weiter nach dem Fokus fragen):
%Vor%Tags und Links java swing focus joptionpane