Component (JTable table, Object value, boolean isSelected, int row, int column) { int modelRow = myTable.convertRowIndexToModel(row); Pair<Object, T> pair = myModel.data.get(modelRow); Object target = pair.first; if (!(target instanceof VirtualFile)) return null; startValue = (VirtualFile)target; newPath = null; TextFieldWithBrowseButton panel = new TextFieldWithBrowseButton(); panel.setText(startValue.getPath()); panel.getTextField().getDocument().addDocumentListener(new DocumentAdapter() { @Override protected void textChanged(@NotNull DocumentEvent e) { newPath = panel.getTextField().getText(); } }); panel.addBrowseFolderListener(new TextBrowseFolderListener(FileChooserDescriptorFactory.createSingleLocalFileDescriptor())); return panel; }