我創建一個自定義的TransferHandler我的JTree,因此停用複製(僅支持移動)和粘貼(通過檢查canImport support.isDrop()),但我可以」弄清楚如何禁用Cut操作。Java的禁用切紙動作JTree的/的TransferHandler
它看起來像我不得不作出的exportDone法測定,但到目前爲止沒有運氣。到目前爲止,我的方法看起來像這樣,但拖動和剪切都與移動操作相關聯。
protected void exportDone(JComponent source, Transferable data, int action) {
if(action == TransferHandler.MOVE) {
try {
List<TreePath> list = ((TestTreeList) data.getTransferData(TestTreeList.testTreeListFlavor)).getNodes();
int count = list.size();
for(int i = 0; i < count; i++) {
TestTreeNode node = (TestTreeNode) list.get(i).getLastPathComponent();
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
model.removeNodeFromParent(node);
}
tree.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
} catch (UnsupportedFlavorException e) {
Log.logException(e);
} catch (IOException e) {
Log.logException(e);
}
}
}
感謝您的答覆,但這似乎並沒有爲我工作。我在原始樹和TransferHandler存儲的引用中都做了這個。我也想過將刪除的節點和insert一起移動到importData方法,但是在同一個方法中處理這兩個方法都很困難。這將消除'cut'將刪除exportDone方法中的節點的可能性。 – testelemental