当前位置: 首页 > 面试题库 >

在特定的屏幕坐标处确定Swing组件?(并手动调度MouseEvents)

樊俊悟
2023-03-14
问题内容

我正在做一些工作,使Java应用程序与替代输入设备兼容。不幸的是,该设备的Java
API目前还处于Alpha阶段,因此非常差劲。实际上,我需要做的是为MouseEvent的派发设置一个替换结构。有谁知道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代码执行与鼠标和键盘相关的任何类型的操作。此类通常用于测试自动化。



 类似资料:
  • 我如何才能使它的应用程序是优化的所有屏幕?

  • 我试图将光标移动到屏幕上的特定像素,并使用java程序单击它。 我试图捕捉一个截图,然后处理它,但我卡住了。

  • 我正在进行一个处理项目,需要能够确定鼠标是否在圆内。因此,我需要获得圆的位置和鼠标的位置。但是,圆的位置已使用矩阵函数进行了修改,如和。例如: 在处理中有什么方法可以做到这一点吗?我在看留档,但似乎找不到任何功能。如果没有,我如何实现我的目标? 谢谢。

  • 我是swift和Xcode新手,我想知道是否有人愿意向我解释,我应该如何让我的启动屏幕显示3秒钟,然后在这段时间内稍微淡出? 我想做一个我以前构建的网页的web视图,但希望它在启动屏幕之前淡出。 我已经阅读了所有其他与该主题相关的问题,但我不理解它们。我也一直在关注一些关于这个主题的教程,但什么都没有。 有人吗,拜托?

  • 我有一套mandelbrot电视机,我想放大。“缩放曼德拉”和“缩放曼德拉”是围绕曼德拉坐标计算的。原始的mandelbrot以real=-0.6和im=0.4为中心,real和im的大小均为2。 我希望能够点击图像中的一个点,并计算一个新的点,放大该点 包含它的窗口是800x800px,所以我想这将使右下角的单击等于真实=0.4和im=-0.6的中心,左上角的单击为真实=-1.6和im=1.4