0

ExportFileChooser.createAndShowGUI() メソッドを呼び出すボタン クリックによって起動される JFileChooser があります。JFileChooser を閉じると、ExportFileChooser というタイトルの新しい空のウィンドウが開きます。これを修正して起動しないようにするにはどうすればよいですか?

コードは次のとおりです。

package org.annotationRoi3D.io;

import java.io.*;
import java.awt.*;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * This creates a dialog window for exporting 
 * and importing XML files.
 */
public class ExportFileChooser extends JPanel {

    private static final long serialVersionUID = 1L;
    public static File ExportFile;
    JFileChooser fcExport;

    public ExportFileChooser() {
        super(new BorderLayout());
        fcExport = new JFileChooser();

        int returnValExport = fcExport.showSaveDialog(ExportFileChooser.this);
        if (returnValExport == JFileChooser.APPROVE_OPTION) {
            ExportFile = fcExport.getSelectedFile();
            org.annotationRoi3D.io.ExportXML.OutputXML();
        }
    }

    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event dispatch thread.
     */
    public static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frameExport = new JFrame("FileChooserExport");
        frameExport.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add content to the window.
        frameExport.add(new ExportFileChooser());

        //Display the window.
        frameExport.pack();
        frameExport.setVisible(true);
    }
}

ありがとうございました

4

2 に答える 2

3

"FileChooseExport"それがコードの動作です。タイトルとしてJFrame を作成し、それを表示します。フレームを表示したくないのに、なぜコードはそうするのですか?

ボタンの ActionListener のコードは次のようになります。

JFileChooser fcExport = new JFileChooser();

int returnValExport = fcExport.showSaveDialog(thePanelContainingTheButton);
if (returnValExport == JFileChooser.APPROVE_OPTION) {
    ...
}

JFileChooser を開くためだけに、可視化された別の JFrame に配置された別の ExportFileChooser パネルは必要ありません。JFileChoose の javadoc には、使用例が含まれています。

于 2013-08-21T10:09:56.547 に答える