Ich habe ein Programm, das in der CLI ausgeführt wird, aber ein JOptionPane verwendet, um ein Popup-Menü anzuzeigen, um den Benutzer eines Ereignisses zu benachrichtigen. Ich habe festgestellt, dass das resultierende Popup-Menü nicht automatisch ausgerichtet wird, wenn die Methode showMessageDialog aufgerufen wird.JOptionPane showMessageDialog Anfrage Fokus im Konsolenprogramm
Gibt es eine Möglichkeit, Fokus für das Popup-Dialogfeld anzufordern? Ich habe versucht, requestFocus auf dem JOptionPane aufzurufen, aber ohne Erfolg.
Hier ist ein Beispielcode.
Ich entschuldige mich, wenn dies ein Repost ist, aber ich konnte bisher keine funktionierende Antwort finden.
Ich habe gerade versucht, den Code und es automatisch bekam Fokus! Um zu testen, drücken Sie einfach "Enter" und sehen, ob das Popup nicht verschwindet. – mohsenmadi
@mohsenmadi Es tut es nicht, wenn ich in einem anderen Fenster bin, was das Problem ist. Normalerweise kann ich das umgehen, indem ich 'requestFocus()' aufrufe, aber das kann ich anscheinend nicht tun, da 'showMessageDialog' statisch ist und 'jop.requestFocus()' 'ruft nicht auf, weil' showMessageDialog' die Pausen unterbricht Faden. – Sollybird
Noch konnte nicht reproduzieren! Ich habe gerade versucht 'try {Thread.sleep (2000); JOptionPane.showMessageDialog (null, "Zurück ...");} catch (InterruptedException e) {} ', um Zeit zu gewinnen, um sich auf andere Fenster zu konzentrieren. Ergebnis? Immer noch Fokus, wenn das Popup angezeigt wird! Ich laufe auf einem Mac - vielleicht geben andere Systeme ein anderes Verhalten? – mohsenmadi