加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在特定的屏幕坐标上识别Swing组件? (并手动调度MouseEv

发布时间:2020-12-14 05:57:33 所属栏目:Java 来源:网络整理
导读:我正在做一些与替代输入设备兼容的 Java应用程序的工作.不幸的是,有问题的设备有一个Java API,现在几乎没有进入alpha阶段,所以很差.我需要做的是基本上设置一个替换结构来分派MouseEvents.有没有人知道在Swing中有没有办法进行屏幕坐标,并找出在该屏幕点顶部
我正在做一些与替代输入设备兼容的 Java应用程序的工作.不幸的是,有问题的设备有一个Java API,现在几乎没有进入alpha阶段,所以很差.我需要做的是基本上设置一个替换结构来分派MouseEvents.有没有人知道在Swing中有没有办法进行屏幕坐标,并找出在该屏幕点顶部显示的Swing组件?

解决方法

在AWT容器中,称之为…
findComponentAt(int x,int y) 
          Locates the visible child component that contains the specified position

即如果它在GlassPane …

public static Component findComponentUnderGlassPaneAt(Point p,Component top) {
    Component c = null;

    if (top.isShowing()) {
      if (top instanceof RootPaneContainer)
        c =
        ((RootPaneContainer) top).getLayeredPane().findComponentAt(
            SwingUtilities.convertPoint(top,p,((RootPaneContainer) top).getLayeredPane()));
      else
        c = ((Container) top).findComponentAt(p);
    }

    return c;
  }

阅读你的问题,这可能对你有帮助吗?

如果你想锻炼控制使用这个…Java.awt.Robot类用于控制鼠标和键盘.一旦得到控制,您可以通过您的java代码进行与鼠标和键盘相关的任何类型的操作.这个类通常用于测试自动化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读