JFileChooser in einem JPanel eingebettet

8

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.

%Vor%

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).

    
Shane 03.11.2008, 18:51
quelle

4 Antworten

10

JFileChooser erweitert JComponent und Component so, dass Sie sie direkt zu Ihrem Frame hinzufügen können.

%Vor%     
Steve Kuo 03.11.2008, 18:58
quelle
5

Um auf die "Schaltflächen" in der Dateiauswahl zuzugreifen, müssen Sie einen ActionListener hinzufügen:

%Vor%     
Johannes 05.11.2008 09:41
quelle
3

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.

    
James Schek 03.11.2008 19:18
quelle
2

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

verwendet     
Carles Barrobés 10.09.2009 16:34
quelle