重叠jpanel之间的java redispatch事件

时间:2014-02-05 18:54:59

标签: java swing

我正在开发一个包含重叠jpanel的桌面应用程序。这些jpanels是透明的,包括一些jbuttons。我希望我的应用程序做的是如果用户点击无按钮区域,将鼠标事件重新发送到jpanels下面。但是,我无法在这些jpanel下面获得哪些jpanel。 java.awt.container类有getComponentAt(int x,int y)方法,但它只给出顶部的组件。 javax.swing.SwingUtilities类有getDeepestComponentAt(Component parent,int x,int y)方法,但它只给出了最深的。那些方法不符合我的需要。是否可以实现JComponent getComponentAt(int x,int y,int z-order)或JComponent [] getComponentsAt(int x,int y)等方法。我发现只有可能的解决方案是使用getComponents()来获取所有组件并使用z-order检查它们的位置。但是,我在应用程序中将有太多组件,这种方式是cpu消耗。是否有可能以更好的方式访问jpanels?

注意:无法添加图片来支持这个问题,因为我的声誉不够高,对不起。

0 个答案:

没有答案