首先,我遇到了图层排序的问题,这使得我的JInternalFrame出现在其他组件下面。在将z轴顺序设置为0之后,这个问题很快得到了解决。
经过少量测试后,我意识到,当鼠标在按钮或表格单元格等其他组件上时,它"泄漏"在我的JInternalFrame上,以某种方式部分失去焦点,如所提供的图像所示。内容泄漏
我这样添加新框架:
JInternalFrame my = new JInternalFrame( "..", true, true, false, false );
this.getContentPane().add(my,0);
my.setSelected(true);
my.setVisible(true);
my.toFront();
解决这个问题最简单的方法是什么?
谢谢!
始终将JInternalFrame
添加到JDesktopPane
,而不是直接添加到JFrame
。
From How Use Internal Frames
通常,您可以向桌面窗格添加内部框架。反过来,桌面窗格可以用作JFrame的内容窗格。
不要改变z轴顺序,而是在add方法中使用:
this.getContentPane().add(my, new Integer(0));
(假设getContentPane()
为JDesktopPane
)
int
方法,做完全不同的事情。