Включить stringFlavor Transfersupport в Java Swing
Я реализую функциональность для перетаскивания Textattribute JLabels в ячейки JTable. Итак, я создал пользовательский TransferHandler для таблицы. Но каждый зов
support.isDataFlavorSupported(DataFlavor.stringFlavor)
возвращает ложь
Как я могу убедиться, что мой TransferHandler может импортировать строки?
Вот источник
public class TableHandler extends TransferHandler {
private static final long serialVersionUID = 1L;
@Override
public boolean canImport(TransferSupport support) {
if (!support.isDrop()) {
return false;
}
//only Strings
if(!support.isDataFlavorSupported(DataFlavor.stringFlavor)){
return false;
}
return true;
}
@Override
public boolean importData(TransferSupport support) {
if (!canImport(support)) {
return false;
}
Transferable tansferable = support.getTransferable();
String line;
try {
line = (String) tansferable
.getTransferData(DataFlavor.stringFlavor);
} catch (Exception e) {
return false;
}
JTable.DropLocation dl = (JTable.DropLocation) support
.getDropLocation();
int column = dl.getColumn();
int row = dl.getRow();
String[] data = line.split(",");
for (String item : data) {
if (!item.isEmpty()) {
table.getTableModel().setValueAt(item, row, column);
}
}
return true;
}
}