让我解释我的代码的作用: 我创建了自己的类,它扩展了JDialog。这个类叫做类A,它包含:JMenuBar,JMenu,JMenuItem,JButton,JDialog,JPanel和MouseAdapter。我的项目与FreeCell Game非常相似,目前我正尝试移动多个图像,这些图像位于它们自己的JPanel中。 现在,我的问题是这样的:当用户点击上的东西在屏幕上,我得到的点协调他们点击这里,并设置像为什么我的组件是JRootPane的一个实例,如果我从未将它分配给它的话?
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
https://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html – Stefan
https://docs.oracle.com/javase/8/docs/api/javax/swing/JRootPane.html添加到例如一个JFrame。 –