gpt4 book ai didi

java - 以编程方式关闭 Java 托盘气球

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:14 27 4
gpt4 key购买 nike

我正在使用 java.awt.SystemTray 创建和管理托盘图标和气球消息。一切正常。

但是我想知道消息显示后是否可以关闭或淡出。

此时,用户需要点击气球或将其关闭,否则消息不会消失。

最佳答案

我不确定其他平台,但在 Windows 上,消息只会在机器正在使用时消失 - 即如果用户正在键入内容或移动鼠标。如果您不移动鼠标或键入任何内容,消息将保留在原处。

以下代码为我显示了一条消息。如果我移动鼠标,它会在大约 5 秒后消失。如果我不这样做,它会一直存在,直到我移动鼠标或输入内容时,它才会消失。

final TrayIcon ti = new TrayIcon(XTPSkin.getInstance().getAppIcon().getImage());
final SystemTray st = SystemTray.getSystemTray();
st.add(ti);
ti.displayMessage("foo", "bar", MessageType.INFO);

没有直接的方法可以在时间结束之前删除消息 - 但是,您可以删除 TrayIcon(如果需要,立即重新添加它,尽管不推荐这样做)。删除 TrayIcon 会导致消息也被删除。

添加到上面的以下代码会导致 TrayIcon 和消息都被删除:

SwingUtilities.invokeLater(new Runnable(){
public void run() {
try {
Thread.sleep(1000); // Don't do this
st.remove(ti);
} catch (InterruptedException ie) {
// You won't need this when the sleep is removed
}
}
});

注意事项:

  • 您需要用 AWTException 的一些异常处理来包装上面的第一 block 代码
  • 第二 block 中的Thread.sleep 仅用于演示目的。由于此代码将在 AWT 线程上执行,您不应该在实际代码中包含该 hibernate 。
  • 以这种方式不断删除和重新添加 TrayIcon 可能不是一个好主意。如果用户正在使用机器,消息确实会消失,因此最好不要这样做。

关于java - 以编程方式关闭 Java 托盘气球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7527776/

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