補足とメモ書き
もう少し整理できたら、正式ページにアップしようと思うが、今はブログで。
まず、今回やりたかったのことの経緯を説明する。
やりたかったのはJTreeのノードをドラッグし別のノードにドロップするときの処理。
これだけなら以前にも作ったことがある。
そのとき問題があって、
1.デフォルト状態では、ドロップ先がわからないためドロップ先を選択させたが、これだと今度はドラッグ元がわからない。
2.ノード間へのドロップがサポートされていないため、諦めるか自分で実装するしかない。しかし、自分で実装するのは非常に大変だ。
今回JAVA6ではこの2つの問題が解決された。
JTreeに今回追加されたsetDropModeというメソッドを使う。
しかし、これを実行してもドロップ先に変化がない。
調べていくと、swingのD&Dは新旧の2種類があり、新しい方法でなければ効果がでないが、自分は古い方法で実装していたためだった。
そうなると、新しい実装方法を調べなければならない。
いろいろやってわかったのは、
・新しい方法では、D&Dとデータ転送をセットで考えている
・ドラッグされたものは転送用データを転送用データの形式で提供する
提供しない場合はドラッグできない
・ドロップされる側は、転送用データを受け入れるか判断し、受け入れた場合には適宜処理を行う。
・転送用データはTransferableオブジェクトで、これは実データの他にデータの種類などを付加したのも
・これらはTransferHandlerというクラスで処理される。
・適切な処理を実装したTransferHandlerオブジェクトを、予めD&Dに関係するコンポーネントに設定しておく。
ということだ。
概略はこんな感じ。
あとは、メインのページにでも書いてみるか。
まず、今回やりたかったのことの経緯を説明する。
やりたかったのはJTreeのノードをドラッグし別のノードにドロップするときの処理。
これだけなら以前にも作ったことがある。
そのとき問題があって、
1.デフォルト状態では、ドロップ先がわからないためドロップ先を選択させたが、これだと今度はドラッグ元がわからない。
2.ノード間へのドロップがサポートされていないため、諦めるか自分で実装するしかない。しかし、自分で実装するのは非常に大変だ。
今回JAVA6ではこの2つの問題が解決された。
JTreeに今回追加されたsetDropModeというメソッドを使う。
しかし、これを実行してもドロップ先に変化がない。
調べていくと、swingのD&Dは新旧の2種類があり、新しい方法でなければ効果がでないが、自分は古い方法で実装していたためだった。
そうなると、新しい実装方法を調べなければならない。
いろいろやってわかったのは、
・新しい方法では、D&Dとデータ転送をセットで考えている
・ドラッグされたものは転送用データを転送用データの形式で提供する
提供しない場合はドラッグできない
・ドロップされる側は、転送用データを受け入れるか判断し、受け入れた場合には適宜処理を行う。
・転送用データはTransferableオブジェクトで、これは実データの他にデータの種類などを付加したのも
・これらはTransferHandlerというクラスで処理される。
・適切な処理を実装したTransferHandlerオブジェクトを、予めD&Dに関係するコンポーネントに設定しておく。
ということだ。
概略はこんな感じ。
あとは、メインのページにでも書いてみるか。
JAVA | comments (0) | -
Comments