2012-05-24 8 views
12

Ich habe mich nur gefragt: Wie benutzt Gmail den Windows/Mac Dateiwähler um Dateien hochzuladen? Gibt es eine Möglichkeit, dies in Java zu tun?Wie verwendet man die Standard-Dateiauswahl für das Betriebssystem? java

enter image description here

Ich persönlich mag die Art nicht, dass die JFileChooser aussieht, und ich dachte, es wäre besser für meine Benutzer in der Lage sein, etwas zu verwenden, die sie zu mehr gewohnt sind. Tipps irgendjemand?

+1

Werfen Sie einen Blick auf AWT [FileDialog] (http://docs.oracle.com/javase/7/docs/api/java/awt/FileDialog.html) – Jeffrey

Antwort

15

Verwenden Sie die alte java.awt.FileDialog statt:

new java.awt.FileDialog((java.awt.Frame) null).setVisible(true); 
+0

Vielen Dank! Ich werde das benutzen! Ich habe nie wirklich an Komponenten von 'java.awt. *' Gedacht. – mattbdean

+0

Nun, wir haben früher viel über sie nachgedacht, bevor Swing existierte. :) –

+4

Obwohl diese Antwort ziemlich alt ist: Ich würde nicht empfehlen, den Awt Dateidialog zu verwenden. Es ist kaputt auf Linux und Mac, und Oracle wird es nicht mehr reparieren. Wenn Sie also nicht nur Windows-Nutzer ansprechen, ist dies keine gute Idee. Außerdem sieht "JFileChooser" mit dem nativen Look & Feel fast identisch auf Windows aus. – Veluria

4

GMail ist eine Web-Anwendung, die schließlich auf dem Browser verlässt sich diese Komponente zu zeigen. Jetzt ist eine gute Lösung, die native Look & Gefühl des Systems zu verwenden, die einen JFileChooser ziemlich ähnlich sieht, was Sie zeigen:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

enter image description here

EDIT: Pulsar-Lösung ist sogar noch besser, da sie die genaue liefert Dialog, den Sie suchen. Ich bin nicht sicher, dass es alle Funktionen des JFileChooser bietet.

7

Sie können mit JFileChooser versuchen, aber das Aussehen Einstellung und spüren Sie die Plattform Blick zu sein und fühlen:

try { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    }catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

Und das würde alle Swing-Komponenten schöner aussehen lassen

Verwandte Themen