var Proxy = java.lang.reflect.Proxy; var Toolkit = java.awt.Toolkit; var FileFilter = javax.swing.filechooser.FileFilter; var JFileChooser = javax.swing.JFileChooser; exports.showDialog = (filter, filterName) => { var fileFilter = new FileFilter({ "getDescription": () => { return filterName || 'Default Filter'; }, "accept": (f) => { return filter(f); } }); var chooser = new JFileChooser(); if (filter != null) { chooser.setFileFilter(fileFilter); } var ret = chooser.showOpenDialog(null); if (ret == JFileChooser.APPROVE_OPTION) { return chooser.getSelectedFile(); } return null; };