首先,我遇到了我的图层排序问题,这使得我的JInternalFrame出现在其他组件下面。在将z-order设置为0之后,已经很快修复了这个问题。
经过一些测试,我意识到,当鼠标超过其他组件(如按钮或表格单元格)时,它会“泄漏”在我的JInternalFrame上,不知何故会部分失去焦点,如图所示。Leak of content
我以这种方式添加我的新框架:
JInternalFrame my = new JInternalFrame( "..", true, true, false, false );
this.getContentPane().add(my,0);
my.setSelected(true);
my.setVisible(true);
my.toFront();
解决这个问题的最简单方法是什么?
谢谢!
答案 0 :(得分:5)
始终将JInternalFrame
添加到JDesktopPane
,而不是直接添加到JFrame
。
通常,您将内部框架添加到桌面窗格。反过来,桌面窗格可以用作JFrame的内容窗格。
答案 1 :(得分:1)
请勿更改z顺序,而是在add方法中使用:
this.getContentPane().add(my, new Integer(0));
(假设getContentPane()
指的是JDesktopPane
)
int
方法完全不同于其他方法。既然存在,就不会进行自动装箱......