其他组件从JInternalFrame下泄漏

时间:2012-12-28 19:49:15

标签: java swing netbeans jinternalframe

首先,我遇到了我的图层排序问题,这使得我的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();

解决这个问题的最简单方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:5)

始终将JInternalFrame添加到JDesktopPane,而不是直接添加到JFrame

来自How to Use Internal Frames

  

通常,您将内部框架添加到桌面窗格。反过来,桌面窗格可以用作JFrame的内容窗格。

答案 1 :(得分:1)

请勿更改z顺序,而是在add方法中使用:

this.getContentPane().add(my, new Integer(0));

(假设getContentPane()指的是JDesktopPane

int方法完全不同于其他方法。既然存在,就不会进行自动装箱......