Ich habe den jFileChooser in meinem Kommandozeilenprogramm implementiert und es funktioniert genauso wie es sollte mit nur einem nervigen Problem. Es scheint, dass es unter jedem Fenster ohne jede Art von Alarm öffnet. Tatsächlich habe ich es sogar ein paar Mal verpasst, was mich dazu gebracht hat zu glauben, dass ich es falsch umgesetzt habe.
Ich habe das wie folgt implementiert:
%Vor%Grundsätzlich möchte ich nur den jFileChooser, damit der Benutzer eine Datei als Eingabedatei auswählen kann. Dies ist die einzige Komponente, die eine GUI-Implementierung benötigt. Wenn ich also das Schreiben einer GUI vermeiden kann, wäre das hilfreich.
Nachdem ich verschiedene Dinge aus verschiedenen Stack-Overflow-Themen ausprobiert habe, kam ich zu einem Ergebnis, das sich durchgängig und zuverlässig über jedem Fenster von Windows 7 öffnet.
%Vor%Wie es in meinem Programm steht, ist es eine innere Klasse und wird aufgerufen durch Aufruf von:
%Vor%Ich denke an zwei mögliche Ursachen für so etwas:
Wenn Sie eines dieser beiden Dinge tun, sollten Sie es vereinfachen und es nur zu einem Swing-GUI-Programm machen. Wenn diese Informationen nicht helfen, können Sie uns weitere Informationen zu Ihrem Problem geben.
Bearbeiten 1
Ich habe gerade die Details Ihres Codes bemerkt. Der neue JPanel () -Teil unten ist ein Problem:
Damit der JFileChooser als -Dialog für Ihr Fenster der obersten Ebene fungiert (was er derzeit nicht tut und das Ihr Hauptproblem ist), sollten Sie stattdessen eine Komponente übergeben, die sich im übergeordneten Bereich befindet Ebenenfenster, z. B. eine JPanel oder JButton, die in Ihrem JFrame oder JApplet enthalten ist.
Bearbeiten 2
OK, Sie versuchen, ein Java-Konsolenprogramm mit einem Swing-GUI-Programm zu mischen, das ist, als würde man Eis mit Essiggurken essen - sie passen einfach nicht zusammen. Es gibt kein Top-Level-Fenster, das der showOpenDialog-Methode von JFileChooser angeboten werden kann, sodass es als echter Dialog fungiert.
Die beste Lösung ist, dies nicht zu tun, sondern Ihre Anwendung als vollständige Swing-GUI neu zu schreiben.
Tags und Links java command-line swing awt jfilechooser