ugnagブログ

たいした内容はありません。思いつきで書いているだけ。
開発日記がメインかな。

<< わかったぞ!! | main | OpenOfiice >>

補足とメモ書き

昨日わかったJTreeのD&Dについて、もう少し補足とメモ書きをしておく。
もう少し整理できたら、正式ページにアップしようと思うが、今はブログで。


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

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

そのとき問題があって、

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

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


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

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

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

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

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

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

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

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


ということだ。


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

Comments

Comment Form

本文に書いて下さい
本文にh抜きで書いて下さい