import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.WindowConstants; public class Main { public JComponent makeUI() { final JPanel p = new JPanel(); final JFileChooser fileChooser = new JFileChooser() { @Override public void approveSelection() { if (!getSelectedFile().exists()) { int returnVal = JOptionPane.showConfirmDialog(this, "message", "title", JOptionPane.YES_NO_OPTION); if (returnVal != JOptionPane.YES_OPTION) { return; } } super.approveSelection(); } }; p.add(new JButton(new AbstractAction("Open") { @Override public void actionPerformed(ActionEvent e) { int retvalue = fileChooser.showOpenDialog(p); if (retvalue == JFileChooser.APPROVE_OPTION) { System.out.println(fileChooser.getSelectedFile()); } } })); return p; } public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.getContentPane().add(new Main().makeUI()); f.setSize(320, 240); f.setVisible(true); } }