補足とメモ書き

2007.01.26 (金) 12:45
ugnag


もう少し整理できたら、正式ページにアップしようと思うが、今はブログで。


まず、今回やりたかったのことの経緯を説明する。

やりたかったのはJTreeのノードをドラッグし別のノードにドロップするときの処理。
これだけなら以前にも作ったことがある。

そのとき問題があって、

1.デフォルト状態では、ドロップ先がわからないためドロップ先を選択させたが、これだと今度はドラッグ元がわからない。

2.ノード間へのドロップがサポートされていないため、諦めるか自分で実装するしかない。しかし、自分で実装するのは非常に大変だ。


今回JAVA6ではこの2つの問題が解決された。
JTreeに今回追加されたsetDropModeというメソッドを使う。

しかし、これを実行してもドロップ先に変化がない。

調べていくと、swingのD&Dは新旧の2種類があり、新しい方法でなければ効果がでないが、自分は古い方法で実装していたためだった。

そうなると、新しい実装方法を調べなければならない。

いろいろやってわかったのは、

・新しい方法では、D&Dとデータ転送をセットで考えている
・ドラッグされたものは転送用データを転送用データの形式で提供する
 提供しない場合はドラッグできない
・ドロップされる側は、転送用データを受け入れるか判断し、受け入れた場合には適宜処理を行う。

・転送用データはTransferableオブジェクトで、これは実データの他にデータの種類などを付加したのも

・これらはTransferHandlerというクラスで処理される。
・適切な処理を実装したTransferHandlerオブジェクトを、予めD&Dに関係するコンポーネントに設定しておく。


ということだ。


概略はこんな感じ。
あとは、メインのページにでも書いてみるか。

[7] beginning...
[1] comments (0)
-


[7] << わかったぞ!!
[9] OpenOfiice >>
[0] [top]


[sb 1.10R]