【问题标题】:How to catch a key event when JFrame is minimized? [duplicate]JFrame最小化时如何捕捉关键事件? [复制]
【发布时间】:2014-08-17 10:29:42
【问题描述】:

我作为初学者正在学习java,我的任务是制作一个自动点击工具。我使用 JFrame 作为接口,但现在我遇到了这个问题: - 我想在用户单击按钮(例如 Ctrl)后获取与屏幕相关的指针的位置。我在 JFrame 上添加了一个按钮,单击它,JFrame 将被最小化,以便用户可以在桌面上移动指针。 - 每当用户按下 Ctrl 键时,我应该打印当时指针的 x,y 位置。 - 我一直在四处寻找解决方案,但我的大脑似乎跟不上。

如果有人能提供一个简单的例子,将不胜感激。谢谢。 到目前为止我的想法:

     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     this.setState(JFrame.ICONIFIED);
     this.addKeyListener(this);
     }

     @Override
     public void keyPressed(KeyEvent e) {
     if (e.getKeyCode() == KeyEvent.CTRL_DOWN_MASK) {
                PointerInfo a = MouseInfo.getPointerInfo();
                Point b = a.getLocation();
                int x = (int) b.getX();
                int y = (int) b.getY();
                System.out.println(x + ":" + y);
            }
    }

【问题讨论】:

  • 对于现有文档的指针的问题通常是不合适的。请展示您迄今为止所做的努力。
  • @FelixFrank 添加。我运行它,即使我再次最大化框架并按 Ctrl,也没有任何反应。

标签: java swing location point


【解决方案1】:

我想在用户单击按钮后获取与屏幕相关的指针位置..

点击按钮:

  • 隐藏框架。
  • 获取整个桌面的屏幕截图。
  • JLabelJWindow 中显示屏幕截图
  • 在标签中添加MouseListener
  • MouseEvent 获取Point

例如类似于this answer 中显示的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多