2017-12-20 7 views
1

申し訳ありませんが、私は心がゆるいです。私は後で使用するためにJTreeの選択を保持する変数を作成しようとしています。私は私の人生のためにはできませんそれを更新せずに変数を設定する方法を理解することができます私は保存しようとしているJtreeの選択を後で変更:値を保持するJava変数

これは私がJTree選択:

CopySelection = FormTree.getSelectionModel(); 

は、私は私がそれを必要とするまでCopySelectionが変更されないままにしたいです。

CopySelectionは次のように定義されています。私は後でCopySelectionを使用しようとすると

public TreeSelectionModel CopySelection; 

、それはJTreeの中の選択に加えられた変更で更新しているだろうが、私はそれを望んでいません。

+0

なぜ選択モデルを保存していますが、選択された項目への参照ではありませんか? –

+0

おそらく私はばかだと思っていますが、パスがそこにあるかもしれないということを知ることはできません。それは1または2または数百になる可能性があります。私は、選択モデル全体を両親やすべてと一緒に保つ方が簡単だと考えました。 –

答えて

0

getSelectionModel()メソッドの構築方法によって異なります。 C++のメソッドは通常、オブジェクトのコピーを返しますが、Javaではメソッドはオブジェクトへのポインタを返します。したがって、オブジェクト自体を返すのではなく、返される新しいオブジェクトを作成する必要があります。 (私の場合には新しいボードにそれらのそれぞれのものをコピー、要素を通じて、単純に繰り返し処理を

public ChessBoard copyChessBoard() { 
    ChessBoard newboard = new ChessBoard(); 
    this.copyTo(newboard); 
    return newboard; 
} 

のcopyTo()関数を:私はここに開発していますあなたのJavaアプリの例を残しておきます新しい要素を作成する)。それは時間がかかりそうですが、データ構造内にイテレータが組み込まれていれば、それはO(n)以上の複雑さであってはなりません。

言うまでもなく、この新しい要素は、最初の要素とは完全に独立しています。

幸運にも、あなたが必要としていることを教えてください!

PS:getSelectionModel()の代わりにcopySelectionModel()(私のcopyChessBoard()メソッド)を使用してください。

関連する問題