gpt4 book ai didi

java - awt.TrayIcon 是否可以区分双击托盘图标和关闭气球消息?

转载 作者:行者123 更新时间:2023-11-29 05:50:50 25 4
gpt4 key购买 nike

目前在我的(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)关闭托盘的最近气球消息时调用此 Action 监听器。

是否可以区分 2 种不同的事件类型(似乎都具有事件 ID 1001),或者我必须仅通过相对时间或其他方式来推断它?或者我能以某种方式“知道”气球仍然在上升,因此点击一定是来自它吗?

最佳答案

TrayIcon 的文档似乎暗示单击气球消息可以触发 ActionEvent,对于您的情况,这与双击图标本身相同。

您可能需要添加一个鼠标监听器来触发点击,如果点击事件后跟一个 ActionEvent 在一段时间内,则为双击,否则为点击正在显示的消息。通过选择足够小的间隔,您应该能够正确地区分它们。

关于java - awt.TrayIcon 是否可以区分双击托盘图标和关闭气球消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com