web-dev-qa-db-ja.com

Java swing library?でファイルを参照するには?

Java Swingライブラリにファイルブラウザウィンドウを開き、ユーザーがファイルを選択できるようにする何らかのJツールがあるかどうか疑問に思っていました。その後、ファイルの出力は選択したファイルの絶対パス。

前もって感謝します、

34
Tomek

JFileChooser クラスを使用して、 この例 を確認できます。

38
CMS

最終的に、必要なことを正確に実行する次の簡単なコードを使用しました。

final JFileChooser fc = new JFileChooser();
fc.showOpenDialog(this);

try {
    // Open an input stream
    Scanner reader = new Scanner(fc.getSelectedFile());
}
15
Tomek

次の例では、ファイルチューザーを作成し、最初にファイルを開くダイアログとして表示し、次にファイルを保存するダイアログとして表示します。

String filename = File.separator+"tmp";
JFileChooser fc = new JFileChooser(new File(filename));

// Show open dialog; this method does not return until the dialog is closed
fc.showOpenDialog(frame);
File selFile = fc.getSelectedFile();

// Show save dialog; this method does not return until the dialog is closed
fc.showSaveDialog(frame);
selFile = fc.getSelectedFile();

次に、ファイル選択ダイアログを作成および表示する2つのボタンを作成する、より複雑な例を示します。

// This action creates and shows a modal open-file dialog.
public class OpenFileAction extends AbstractAction {
    JFrame frame;
    JFileChooser chooser;

    OpenFileAction(JFrame frame, JFileChooser chooser) {
        super("Open...");
        this.chooser = chooser;
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent evt) {
        // Show dialog; this method does not return until dialog is closed
        chooser.showOpenDialog(frame);

        // Get the selected file
        File file = chooser.getSelectedFile();
    }
};

// This action creates and shows a modal save-file dialog.
public class SaveFileAction extends AbstractAction {
    JFileChooser chooser;
    JFrame frame;

    SaveFileAction(JFrame frame, JFileChooser chooser) {
        super("Save As...");
        this.chooser = chooser;
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent evt) {
        // Show dialog; this method does not return until dialog is closed
        chooser.showSaveDialog(frame);

        // Get the selected file
        File file = chooser.getSelectedFile();
    }
};
7
iberck

WebStartおよび新しい6u10プラグインでは、セキュリティ権限がなくてもFileOpenServiceを使用できます。明らかな理由により、ファイルパスではなく、ファイルの内容のみを取得します。