2

filechooserダイアログでファイルを開こうとしていますが、ファイルを開いたとき、または単にダイアログを閉じたとき。ダイアログが再び表示されます。2回閉じる必要があります。これが私のコードです、何が悪いのかわかりません

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    try {
        // TODO add your handling code here:
        ObjectInputStream input;
        JFileChooser openFileChooser = new JFileChooser();
        openFileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
        openFileChooser.showOpenDialog(null);
        openFileChooser.setCurrentDirectory(new File("."));
        if (openFileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
            input = new ObjectInputStream(new FileInputStream(openFileChooser.getSelectedFile()));
            input.close();
        }
        javax.swing.JFrame openFileFrame = new javax.swing.JFrame();        
        openFileFrame.setLayout(new BorderLayout());
        openFileFrame.setLocationRelativeTo(null);
        openFileFrame.add(openFileChooser, BorderLayout.CENTER);
        openFileFrame.pack();
        openFileFrame.setVisible(true);
    } catch (IOException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
    }

}
4

2 に答える 2

2

最初のものを作成するためのこのコード行

JFileChooser openFileChooser = new JFileChooser();
openFileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
openFileChooser.showOpenDialog(null);
openFileChooser.setCurrentDirectory(new File("."));
if (openFileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
   input = new ObjectInputStream(new FileInputStream(openFileChooser.getSelectedFile()));
   input.close();
}

残りのコード行を2番目のコード行に埋め込みます

javax.swing.JFrame openFileFrame = new javax.swing.JFrame();        
openFileFrame.setLayout(new BorderLayout());
openFileFrame.setLocationRelativeTo(null);
openFileFrame.add(openFileChooser, BorderLayout.CENTER);
openFileFrame.pack();
openFileFrame.setVisible(true);
于 2012-05-12T09:45:15.007 に答える
1

最初に出現した openFileChooser.showOpenDialog(null); を削除します。

于 2012-05-12T10:02:33.703 に答える