Java:如何拖放 TrayIcon?

发布于 2024-12-08 22:00:23 字数 113 浏览 1 评论 0原文

如何捕获文本/文件/任何其他 DataFlavor 到 java.awt.TrayIcon 上的放置事件(放置在 java.awt.SystemTray 中)?

How can I catch a drop event of a text / file / any other DataFlavor onto a java.awt.TrayIcon (placed in a java.awt.SystemTray)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

唯憾梦倾城 2024-12-15 22:00:23

显然这还不支持(Java 1.7)。
如果有人感兴趣,我创建了一个功能请求 Sun 功能请求 7119272 -如果您愿意,您可以监控进度并为其投票。

Apparently this is not supported yet (Java 1.7).
If anyone is interested, I have created a feature request Sun Feature Request 7119272 - you can monitor progress and vote for it if you'd like.

时光礼记 2024-12-15 22:00:23

如果将 mousemotionlistener 添加到 TrayIcon 并对漂浮在 TrayIcon 上的水滴做出反应会怎样?然后,当鼠标悬停在 TrayIcon 的 mousemotionlistener 上时,将显示一个支持拖放的 JList,该 JList 反过来将接收可放置的对象。

what if you add a mousemotionlistener to the TrayIcon and react on a drop floating over the TrayIcon. Then when the mouse is over the TrayIcon's mousemotionlistener will display a JList with Drag&drop support which in turn will receive the droppable.

策马西风 2024-12-15 22:00:23

尝试下面的代码。每当鼠标移到托盘图标上时它就会触发。

    Toolkit.getDefaultToolkit().addAWTEventListener
    (
       new java.awt.event.AWTEventListener() {
          @Override
          public void eventDispatched(java.awt.AWTEvent event)
          {
              if (event.getID() == java.awt.event.MouseEvent.MOUSE_MOVED)
              {
                    // add here your stuff
              }
          }//eventDispatched
       }//AWTEventListener
    ,  java.awt.AWTEvent.MOUSE_MOTION_EVENT_MASK
    );

try the code below. It fires whenever the mouse moves over the trayicon.

    Toolkit.getDefaultToolkit().addAWTEventListener
    (
       new java.awt.event.AWTEventListener() {
          @Override
          public void eventDispatched(java.awt.AWTEvent event)
          {
              if (event.getID() == java.awt.event.MouseEvent.MOUSE_MOVED)
              {
                    // add here your stuff
              }
          }//eventDispatched
       }//AWTEventListener
    ,  java.awt.AWTEvent.MOUSE_MOTION_EVENT_MASK
    );
莫言歌 2024-12-15 22:00:23

你必须扩展你的TrayIcon并将我给你的部分添加到这个扩展的TrayIcon中。这样它只会在扩展托盘图标的移动事件时触发。剩下的我就留给你了。

you must extend your TrayIcon and add the part I gave you to this extended TrayIcon. This way it will fire only for move-events of your extended trayicon. The rest i leave to you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文