Ich schreibe ein Java-Programm, das einen Datei-Öffnen-Dialog benötigt. Der Datei-Öffnen-Dialog ist nicht schwierig, ich hoffe, ein JFileChooser
zu verwenden. Mein Problem ist, dass ich gerne ein duales Fenster JFrame
(bestehend aus 2 JPanels
) haben möchte. Das linke Panel würde ein JList
haben, und das rechte Panel würde einen Dialog zum Öffnen von Dateien haben.
Wenn ich JFileChooser.showOpenDialog()
verwende, öffnet sich das Dialogfeld über allen anderen Fenstern, was ich nicht möchte. Gibt es eine Möglichkeit, den JFileChooser
(oder vielleicht einen anderen Dateiauswahldialog) in einem JPanel
anzuzeigen und nicht darüber zu blenden?
Hier ist der Code, den ich versucht habe, an dieser Stelle ist es sehr vereinfacht. Ich versuche nur, das JFileChooser
zu diesem Zeitpunkt in JPanel
einzubetten.
Ich habe auch versucht, chooser.showOpenDialog
mit this
und panel
aufzurufen, aber ohne Erfolg. Außerdem habe ich versucht, den JFileChooser
direkt zum Rahmen hinzuzufügen. Bei beiden oben aufgelisteten Versuchen erscheint immer noch das JFileChooser
vor dem Frame oder Panel (abhängig davon, ob ich JFileChooser
hinzufüge).
Um auf die "Schaltflächen" in der Dateiauswahl zuzugreifen, müssen Sie einen ActionListener hinzufügen:
%Vor%Wenn Sie den JFileChooser im laufenden Betrieb hinzufügen, müssen Sie revalidate () aufrufen.
Steve's Antwort ist richtig. Sie können einen JFileChooser anderen Containern hinzufügen.
An Johannes: Danke für Ihr nützliches Snippet.
Anstelle von "ApproveSelection" und "CancelSelection" habe ich die definierten Konstanten JFileChooser.APPROVE_SELECTION
und JFileChooser.CANCEL_SELECTION
Tags und Links java jfilechooser jpanel fileopendialog