当主框架在netbeans中最大化时自动调整内部框架的大小

时间:2013-10-19 17:55:31

标签: java swing netbeans

我是Netbeans Gui开发的新手 我想让gui几乎像netbeans gui 但是当我最大化主框架时,内部框架不会重新调整尺寸。 因为当我使用网格布局布置Jdesktoppane中的Jinternalframes时,没有授权选项。 使用jdesktoppane netbeans可以选择自动调整水平和垂直大小。

我无法弄清楚只有desktoppane正在调整大小并且其他内部框架保持相同的大小

2 个答案:

答案 0 :(得分:1)

  

netbeans不为内部组件提供自动调整大小选项。

没有自动调整大小的属性。每个内部框架都有一个“最大化”属性。一次只能最大化一帧。在这种情况下,最大化的框架将自动调整桌面窗格的大小。

如果您希望在桌面窗格调整大小时调整所有内部框架的大小,则需要在桌面窗格中添加ComponentListener,然后在componentResized()事件发生时手动调整每个内部框架的大小生成。

  

如果我没有在JDesktopPane中放置内部帧,那么我可以选择为每个Jinternalframe自动调整大小并正常调整大小

这是由您添加内部框架的面板的布局管理器完成的。 JDesktopPane不是以这种方式工作的。它旨在让用户在桌面上随机拖动组件。

答案 1 :(得分:0)

如果您希望JInternalFrames在父级时调整大小,则必须自己完成。使用布局管理器不会为您执行此操作,并且像camickr所说的那样,您不应该使用JDesktopPane。

如果要调整内部框架的大小,则需要在JFrame上设置ComponentListener并使用setBounds()将内部框架的大小调整为所选的比例。

@Override public void componentResized(ComponentEvent e) {
    if (e.getSource() == yourFrame) {

        yourInternalFrame1.setBounds(0, 0, yourFrame.getContentPane().getWidth() / 4, yourFrame.getContentPane().getHeight());
        yourInternalFrame2.setBounds(yourFrame.getContentPane().getWidth() / 4, 0, yourFrame.getContentPane().getWidth() / 2, yourFrame.getContentPane().getHeight() / 2);

        // and so on
        // also can use yourDesktopPane instead of yourFrame.getContentPane()

    }
}