2012-01-10 9 views
2

私は、スイングGUIと完了までに多くの時間を要するタスク(10秒から10分、ハムスターの実際のコントロールを持たない)でJavaアプリケーションを構築しています。 。今のタスクが完了したことをデスクトップに通知

私は「私はをやってる」または「私はを働いているを」と言ってCardLayoutレイアウトマネージャを持つ別のJPanelの内側に2つのJPanel sの間で切り替えます。パネル間の切り替えは、何かが変更されたことをデスクトップに通知しません。

オペレーティングシステムにタスクが完了したことを通知する方法はありますか?

実世界の例:Windows XPでは、タスクバーのボタンが点滅するはずです。Mac OSXでは、ドックバーのアイコンが飛びます。

ありがとうございます!あなたのGUIコンポーネントでObserverインタフェースを実装し、あなたのタスクはObservableを拡張でき

答えて

2
Real world examples: on Windows XP it should make the taskbar button blink, 
in Mac OSX it should make the dockbar icon jump. 

WindowAdapterに通知することができるので、より良いはSystemTrayhere similair)今日を実装するであろう、そしてタスクTryIcon#displayMessageを使用して、ステータスの表示Message次に終了した場合。

+0

これは別の方法ですが、firefoxやwordのような現代的なアプリケーションでは、ユーザーが何らかの理由でアプリケーションに注意を払う必要があると感じると、タスクバーアイコンがオレンジ色に点滅します。言われたように、それはあなたが描いている選択肢ですが、それほどうれしくはありません。ユースケースによって異なります。 – Pieter

+0

Pieterの答え(answer)(http://stackoverflow.com/a/8803161/455883)は私が探していたものですが、時間がかからず、 'SystemTray'を実装することに決めました。 – Minkiele

+0

ユーザーを混乱させることなく、重要です – mKorbel

-1

には、現実世界の答えを持っていませんが、多分あなたは、ウィンドウのタイトルをアニメーション化することができ、古い学校のスタイル

0

+0

真実ですが、Observerの別の実装を使用するとより優れています – mishadoff

0

ポストは、私はそれが正しい軌道に乗ってあなたを設定する必要がありますね、少し古いですが:http://today.java.net/pub/a/today/2003/12/08/swing.html

それはあなたがJNIとMacの代替JDirectを使用してやりたい方法について説明します。

+0

私はまた別の実装も見つけました[ここ](http://stackoverflow.com/questions/2773364/make-jface-window-blink-in-taskbar-orget-get -users-attention)、途中でヒントのおかげで。 – Minkiele

関連する問題