如果我从未将其分配给JRootPane实例,为什么将其作为实例?

鲍勃·迪伦

让我解释一下我的代码的作用:我创建了自己的类,该类扩展了JDialog。此类称为类A,其中包含:JMenuBar,JMenu,JMenuItem,JButton,JDialog,JPanel和MouseAdapter。我的项目与FreeCell Game非常相似,在该项目中,我目前正在尝试移动位于其自己的JPanels中的多个图像。现在,我的问题是这样的:当用户单击屏幕上的某物时,我得到了他们单击位置的坐标,并设置了一个像

Component component = getComponentAt(point);

然后,我检查它是否是JPanel的实例,即卡

if (component instanceof JPanel)

这样我就可以移动卡了。这就是我的问题所在。当我打印出我的组件类是什么时,它声明它是一个JRootPane,但是直到我直到现在才对它一生都从未使用过或看到它。我想知道为什么我的组件从未使用过时才成为JRootPane的对象。

无论我在屏幕上的什么位置单击,它始终表明我的组件是JRootPane ...

是因为JRootPane包含JDialog吗?https://docs.oracle.com/javase/7/docs/api/javax/swing/JRootPane.html

卡米克尔

是因为JRootPane包含JDialog吗?

没有JRootPane不包含JDialog。一个JDialog包含一个JRootPanel。

我想知道为什么我的组件从未使用过时才成为JRootPane的对象。

Component component = getComponentAt(point);

那么,容器getComponentAt(...)指的是什么?是对话框还是面板?

在您的情况下,getComonentAt()方法似乎是相对于对话框的,因此将返回相对于对话框的组件。由于添加到对话框的第一个组件是JRootPane,因此它将返回根窗格。

您要做的是将MouseListener添加到包含图像的面板中。然后在MouseListener代码中执行以下操作:

@Override
public void mousePressed(MouseEvent e)
{
    Component parent = e.getComponent();  
    Component child = parent.getComponentAt(...);
}

然后,如果您单击包含图像的组件,您将获得该组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们将firefoxdriver实例分配给webdriver

来自分类Dev

在对象的新实例上调用方法而不将其分配给变量

来自分类Dev

如何获取模型表单的实例并将其分配给视图中的键?

来自分类Dev

N次创建一个类的实例,而不将其分配给变量

来自分类Dev

为什么未将Inkwell分配给参数Widget?

来自分类Dev

如果pvc处于“已发布”状态,我们可以将其分配给pv吗?

来自分类Dev

如果我在不将其返回值分配给变量的情况下调用函数,会发生什么情况?

来自分类Dev

为什么我的线程调用一个函数对象而不是将其返回值分配给packaged_task的future对象?

来自分类Dev

将函数作为变量传递并将其分配给仍然可以在Lua中引用“自我”的对象

来自分类Dev

在C语言中,为什么在声明字符串后不能将其分配给char数组?

来自分类Dev

为什么在将r值参考分配给它时将其视为l值参考?

来自分类Dev

为什么在定义ReLU autograd函数时需要克隆grad_output并将其分配给grad_input?

来自分类Dev

为什么在初始化子对象并将其分配给父对象时调用父方法

来自分类Dev

使用命名类型(IdentityUser)时出错,将其分配给var时工作正常,为什么?

来自分类Dev

如果未将new Class()的结果分配给变量,会发生什么情况

来自分类Dev

将对象实例分配给数组

来自分类Dev

Rails将属性分配给实例

来自分类Dev

JMeter在ASP MVC 5项目中未对RequestVerificationToken进行识别/未将其分配给变量

来自分类Dev

在使用IIFE的情况下,为什么未将值分配给变量?

来自分类Dev

在使用IIFE的情况下,为什么未将值分配给变量?

来自分类Dev

为什么在ObservableMap中引用InputStream实例时将其关闭?

来自分类Dev

如果变量是静态的,如何将其分配给类构造函数?

来自分类Dev

如果我有一个类的单个实例,最好是将其全局化或在构造函数中作为参数传递?

来自分类Dev

创建实例和将其作为参数传递与在参数内部创建实例之间有什么区别?

来自分类Dev

我可以打印数据,但不能在Swift中将其分配给标签

来自分类Dev

我的包含JPanel如何将其所有空间分配给包含的组件?

来自分类Dev

ES6 闭包只有在我将其分配给变量后才能调用

来自分类Dev

C ++ thread_id是什么数据类型,可以将其分配给变量吗?

来自分类Dev

如果{{}}没有分配给变量的字段,为什么没有显示分配给该变量的字段?

Related 相关文章

  1. 1

    为什么我们将firefoxdriver实例分配给webdriver

  2. 2

    在对象的新实例上调用方法而不将其分配给变量

  3. 3

    如何获取模型表单的实例并将其分配给视图中的键?

  4. 4

    N次创建一个类的实例,而不将其分配给变量

  5. 5

    为什么未将Inkwell分配给参数Widget?

  6. 6

    如果pvc处于“已发布”状态,我们可以将其分配给pv吗?

  7. 7

    如果我在不将其返回值分配给变量的情况下调用函数,会发生什么情况?

  8. 8

    为什么我的线程调用一个函数对象而不是将其返回值分配给packaged_task的future对象?

  9. 9

    将函数作为变量传递并将其分配给仍然可以在Lua中引用“自我”的对象

  10. 10

    在C语言中,为什么在声明字符串后不能将其分配给char数组?

  11. 11

    为什么在将r值参考分配给它时将其视为l值参考?

  12. 12

    为什么在定义ReLU autograd函数时需要克隆grad_output并将其分配给grad_input?

  13. 13

    为什么在初始化子对象并将其分配给父对象时调用父方法

  14. 14

    使用命名类型(IdentityUser)时出错,将其分配给var时工作正常,为什么?

  15. 15

    如果未将new Class()的结果分配给变量,会发生什么情况

  16. 16

    将对象实例分配给数组

  17. 17

    Rails将属性分配给实例

  18. 18

    JMeter在ASP MVC 5项目中未对RequestVerificationToken进行识别/未将其分配给变量

  19. 19

    在使用IIFE的情况下,为什么未将值分配给变量?

  20. 20

    在使用IIFE的情况下,为什么未将值分配给变量?

  21. 21

    为什么在ObservableMap中引用InputStream实例时将其关闭?

  22. 22

    如果变量是静态的,如何将其分配给类构造函数?

  23. 23

    如果我有一个类的单个实例,最好是将其全局化或在构造函数中作为参数传递?

  24. 24

    创建实例和将其作为参数传递与在参数内部创建实例之间有什么区别?

  25. 25

    我可以打印数据,但不能在Swift中将其分配给标签

  26. 26

    我的包含JPanel如何将其所有空间分配给包含的组件?

  27. 27

    ES6 闭包只有在我将其分配给变量后才能调用

  28. 28

    C ++ thread_id是什么数据类型,可以将其分配给变量吗?

  29. 29

    如果{{}}没有分配给变量的字段,为什么没有显示分配给该变量的字段?

热门标签

归档