ActionListener (final JTable table) { return new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String initial = (String)getCellEditorValue(); if (StringUtil.isEmpty(initial)) { initial = getDefaultPath(); } VirtualFile initialFile = StringUtil.isNotEmpty(initial) ? LocalFileSystem.getInstance().findFileByPath(initial) : null; FileChooser.chooseFile(getFileChooserDescriptor(), myProject, table, initialFile, file -> { String path = file.getPresentableUrl(); if (SystemInfo.isWindows && path.length() == 2 && OSAgnosticPathUtil.startsWithWindowsDrive(path)) { path += "\\"; // make path absolute } myComponent.getChildComponent().setText(path); }); } }; }