我只能禁用整个表格的拖放,但我需要能够对特定列的单元格执行此操作,我不知道是否可行。
谢谢你的回答。
当对象被放置在 JTable 上时,您可以检查放置位置并决定是否接受操作。
例如,只接受第一列的掉落:
JTable table = new JTable();
table.setTransferHandler(new TransferHandler() {
@Override
public boolean canImport(TransferSupport support) {
if (support.isDrop()) {
JTable.DropLocation dropLocation = (JTable.DropLocation) support.getDropLocation();
if (dropLocation.getColumn() != 0) {
return false;
}
}
return super.canImport(support);
}
@Override
public boolean importData(TransferSupport support) {
if (support.isDrop() && canImport(support)) {
// handle the dropped object
...
return true;
}
return super.importData(support);
}
});