Ativar stringFlavor de Transferências suportadas no Java Swing
Eu estou implementando uma funcionalidade para arrastar e soltar o Textattribute de JLabels para as células de uma JTable. Então, criei um TransferHandler personalizado para a tabela. Mas todo chamado de
support.isDataFlavorSupported(DataFlavor.stringFlavor)
retorna falso
Como posso ter certeza de que meu TransferHandler é capaz de importar Strings?
Aqui é a fonte
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;
}
}