关于#java#的问题:JInternalFrame无法在desktopPane里面正确显示出来,不在写desktopPane.add(JInternalFrame)显示出来,但是显示的不正确

JInternalFrame无法在desktopPane里面正确显示出来,不在写desktopPane.add(JInternalFrame)显示出来,但是显示的不正确

img

这个要看下你的代码,设置下你的 frame 的高度宽度和位置看看

这个问题可能是因为JInternalFrame没有设置大小和位置。你需要在创建JInternalFrame实例时,调用setBounds方法来设置JInternalFrame的大小和位置。
下面的代码创建了一个大小为300x200,位于(50,50)位置的JInternalFrame,并将其添加到desktopPane中:

JInternalFrame internalFrame = new JInternalFrame("内部窗口", true, true, true, true);
internalFrame.setBounds(50, 50, 300, 200);
desktopPane.add(internalFrame);
internalFrame.setVisible(true);

最后根据你的需要调整setBounds方法中的参数,让JInternalFrame正确显示在你的desktopPane中。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    回答:

    该问题可能是由于添加的JInternalFrame没有正确设置其大小和位置所致。

    以下是可能的解决方案:

    1. 设置JInternalFrame的大小和位置,确认在添加到desktopPane中时可以正确显示:

      JInternalFrame internalFrame = new JInternalFrame(); internalFrame.setSize(200, 200); // 设置大小 internalFrame.setLocation(50, 50); // 设置位置 desktopPane.add(internalFrame); // 添加到desktopPane中 internalFrame.setVisible(true); // 显示

    2. 确认在添加JInternalFrame到desktopPane时,已经正确设置了desktopPane的大小和位置:

      desktopPane.setSize(800, 600); // 设置desktopPane的大小 internalFrame.setSize(desktopPane.getSize()); // 设置JInternalFrame的大小与desktopPane相同 desktopPane.add(internalFrame); // 添加到desktopPane中 internalFrame.setVisible(true);

    3. 确认使用了正确的布局管理器并正确设置了JInternalFrame的大小和位置:

      desktopPane.setLayout(new BorderLayout()); // 设置desktopPane的布局管理器为BorderLayout internalFrame.setSize(200, 200); // 设置JInternalFrame的大小 desktopPane.add(internalFrame, BorderLayout.CENTER); // 添加到desktopPane中心 internalFrame.setVisible(true);

    如果以上解决方案都无效,可能需要检查是否存在其他因素导致该问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^