抱歉,但我已经失去了理智。我试图创建一个变量来保存JTree
的选择以供以后使用。我不能为我的生活弄清楚如何设置该变量而不更新,稍后更改我试图保留的Jtree中的选择:
这是我尝试捕获JTree
选项的地方:
CopySelection = FormTree.getSelectionModel();
我希望 CopySelection 保持不变,直到我需要它。
CopySelection定义为:
public TreeSelectionModel CopySelection;
当我稍后尝试使用 CopySelection 时,它会更新对JTree中的选择所做的更改,但我不希望这样。
答案 0 :(得分:0)
这取决于你的getSelectionModel()方法是如何构建的。虽然C ++方法通常返回对象的副本,但在Java中,方法返回指向对象的指针。因此,您需要创建一个要返回的新对象,而不是返回该对象本身。我将给你一个我正在开发的Java应用程序示例:
public ChessBoard copyChessBoard() {
ChessBoard newboard = new ChessBoard();
this.copyTo(newboard);
return newboard;
}
copyTo()函数,简单地遍历元素,在我的情况下将每个元素和其中一个复制到新的板中(创建新元素)。这似乎很耗时(而且确实如此),但是如果你在数据结构中内置了一个迭代器,它应该不会超过O(n)的复杂性。
毋庸置疑,这个新元素完全独立于第一个元素。
祝你好运,让我知道这是否是你所需要的!
PS:正如您可能已经猜到的那样,copySelectionModel()(我的copyChessBoard()方法)应该替换您的getSelectionModel()。