現在、私の (JRuby コード) では、「バルーンを閉じる」メッセージを「トレイ アイコンをダブルクリックする」(awt.TrayIcon インスタンス) とは異なる方法で処理したいと考えています。
import java.awt.TrayIcon
import java.awt.event.MouseListener
tray = java.awt.SystemTray::system_tray
image = java.awt.Toolkit::default_toolkit.get_image('')
trayIcon = TrayIcon.new(image, 'name', nil)
tray.add(trayIcon)
trayIcon.addActionListener do |evt|
puts "in here", evt.id
end
trayIcon.displayMessage("title", "try clicking within the baloon, but not the x, then double clicking the tray icon", TrayIcon::MessageType::INFO)
puts "try clicking within the balloon message, or double clicking, both seem to generate the same event"
Java https://gist.github.com/4338167の同等のコード
このアクション リスナーは、1) ユーザーがシステム トレイのアイコンをダブルクリックしたとき、または 2) ユーザーがバルーン (x ではなく) をクリックしてトレイの最近のバルーン メッセージを閉じたときに呼び出されるようです。
2 つの異なるイベント タイプ (どちらもイベント ID 1001 のようです) を区別することはできますか? または、バルーンがまだ上にあることを何らかの形で「知る」ことができますか?