« 血液型とADHD |Main| 反発力の計算が14倍ほど速くなった、他。 »

« BufferStrategy | log | 反発力の計算が14倍ほど速くなった、他。 »

拡張子を指定するとアイコンを頂点に

iconvertex.png

SWTで拡張子からアイコン画像を取得し。それをAWTのImageに変換して2倍に拡大してから描画しました。ファイルをドラッグドロップしたらこの頂点ができて、ダブルクリックしたらファイルが開く、というのを作りたいのだけど、とりあえずアイコンを描画するところまで。でも残りはさほど難しくない気もする。

問題はマウスハンドラかなぁ。 今は「右ボタンのイベントを処理するハンドラ」「左ボタンのイベントを処理するハンドラ」という二つがあり、そこにMouseOperationクラスのインスタンスを入れる形になっている。でも、逆に言うとその二つしか登録できない。 以前、拡大縮小と平行移動が別のクラスで実装されていて、いちいち切り替えないといけないのが面倒だったので、Shiftキーが押されているかどうかで挙動の変わるものを作ったけど、いまいち納得がいかなかった。それはこういうこと。「右ドラッグ」と「Shiftを押された右ドラッグ」は競合しないものだから、それぞれを取るハンドラを両方同時にアクティブにしてあっても問題は起きない。それなのに「右マウス用ハンドラ」と「左マウス用ハンドラ」の2つしかハンドラを入れる場所がない。現状のまま「ダブルクリック」というドラッグと競合しないイベントを取るハンドラを追加したとしても、また抱き合わせクラスを作るか、さもなくば「ハンドラを切り替えてからダブルクリック」とやるかしかない。これはどう考えてもイベント分配システムの設計が間違っている。

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/428

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.