gpt4 book ai didi

java - JTree 只使树叶可拖动

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:18 24 4
gpt4 key购买 nike

我只需要使 JTree 的叶子可拖动,但以下代码片段使树中的每个节点都可拖动:

tree.setDragEnabled(true);

如何将可拖动元素限制为树节点的特定信息,如属性 myNode.isLeaf();

蒂亚杰斯特

最佳答案

这可以通过更改 JTreeTransferHandler 以在非叶节点上返回空 Transferable 来完成。

这是一个简单的例子:

    JTree tree = new JTree();
tree.setDragEnabled(true);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

tree.setTransferHandler(new TransferHandler(null) {
public int getSourceActions(JComponent c) {
return MOVE;
}

protected Transferable createTransferable(JComponent c) {
JTree tree = (JTree) c;
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent();

if (node.isLeaf()) {
// TODO create the Transferable instance for the selected leaf
} else {
return null;
}
}
});

关于java - JTree 只使树叶可拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com