2013-05-26 4 views
0

Я хочу сделать так, чтобы мой JFrame закрывался после выбора файла в JFileChooser. Как мне это сделать? Я попытался использовать dispose(); но это не относится к слушателю actionPerformed. Какие-нибудь советы?Закрытие Jframe после того, как файл выбран в JFileChooser

public static void createWindow() { 

    JFrame.setDefaultLookAndFeelDecorated(true); 
    JDialog.setDefaultLookAndFeelDecorated(true); 
    JFrame frame = new JFrame("JComboBox Test"); 
    frame.setLayout(new FlowLayout()); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JButton inbutton = new JButton("Select Input File"); 
    inbutton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
     JFileChooser fileChooser = new JFileChooser(); 
     int returnValue = fileChooser.showOpenDialog(null); 
     if (returnValue == JFileChooser.APPROVE_OPTION) { 
      Test method = new Test(); 
      File selectedFile = fileChooser.getSelectedFile(); 
      String outFile = selectedFile.getParent() + "/baseball_out.txt"; 
      String inFile = selectedFile.getPath(); 
      method.baseballedit(inFile, outFile); 
      //ADD CLOSING ACTION HERE// 
     } 
     } 
    }); 
    frame.add(inbutton); 
    frame.pack(); 
    frame.setVisible(true); 

} 
+0

'frame.dispose()' должен работать. как именно вы пытались использовать 'dispose()'? – drewmoore

+1

См. [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/a/9554657/418556) –

ответ

1

Я попытался с помощью Dispose(); но это не относится к слушателю actionPerformed.

dispose должен быть вызван на JFrame, а не на ActionListener. Сделать framefinal, а затем вы можете позвонить

frame.dispose(); 
+0

Большое спасибо, отлично работает! – user1750156