Java Swingによるドラッグアンドドロップ(drag-and-drop)の実装Javaで実装する場合に限らず、一般的にドラッグアンドドロップの処理は、いろいろな要素(処理やメッセージの伝達)が関わってくるのでわかりにくい部分があります。 ざっと思いつくままに挙げても、以下のような点に注意してコーディングする必要があります。 ドラッグ元での処理ドラッグ開始時の処理ドロップ先での処理ドロップしたときの処理(ドラッグ完了したときのドラッグ元での処理)ドラッグ中の処理(ドロップ領域に入ったとか出たとか)など。 しかし、ドラッグアンドドロップ中に起きる処理の流れ全体を把握して、そのそれぞれでどのクラスが関わってくるのかを把握できれば、Javaでの実装はかなり簡単です。 異なるJavaVM間やネイティブなプラットフォーム上のアプリケーションとのドラッグアンドドロップに対応しているので、これをマス
この問題は,サン・マイクロシステムズのJavaエバンジェリストグループが主体になって毎月開催しているセミナー「今月の2時間で学ぶJava Hot Topic」で取り上げたのと同じものです。Javaエバンジェリストグループは5分でわかる今週のJavaホットトピックというブログでも,定期的にJavaのパズルを掲載しており,このパズルも掲載されています。 ですので,このセミナーに参加された方はもう答えを知っていはずですね。正解は(2)です。 この結果は「Swingで実装されている」というところがキーです。同じものをAWTで作り直して実行すると,結果は(6)になります(ソースコード)。 なぜSwingだともともとの意図である(6)になってくれないのでしょうか。 それはSwingがシングルスレッドで実装されているからです。 SwingやAWTはイベント駆動で動作することは皆さんご存じのはずです。イベ
JDK1.6 から標準採用となった SwingWorker を試してみます。 SwingWorker クラスはどのような場合に使用されるか調べてみました。 GUI とやりとりする時間のかかる処理を、専用のスレッドで実行するための抽象クラスです。 Swing を使ってマルチスレッドアプリケーションを記述する場合、下記のような二つの制約があります。 1.イベントディスパッチスレッドでは時間のかかる処理を実行しないようにする。 2.Swing コンポーネントには、イベントディスパッチスレッド上でのみアクセスする。 この二つの制約をクリアしようと思えば時間のかかるスレッドとGUI 関連の全てを実行するスレッドが必要となります。 参考までに Sun のサイトにあるチュートリアルでは、30ミリ秒以上の処理はイベントディスパッチスレッド上で実行しない。SwingWorker を使ってワー
EclipseでのGUIアプリ開発事情 Javaは標準でSwingというGUIアプリケーションのためのAPIが提供されている。しかし、Javaの標準的な統合開発環境であるEclipseにはSwing向けのGUIデザイナが搭載されておらず、サードパーティ製のプラグイン(本連載第15回を参照)にもこれまではオープンソースのものは存在しなかった。これに対し、Eclipseと並ぶオープンソースのJava IDEであるNetBeansにはMatisseと呼ばれる強力なGUIデザイナが搭載されており、Swingアプリケーションの開発はEclipseの大きな弱点の1つとなっていた。 今回紹介するVisual Swing for EclipseはSwing向けのGUIデザイナを提供するオープンソースのEclipseプラグインだ。 Visual Swing for Eclipseのインストール Visual
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く