JDesktopPane和JInternalFrame之间奇怪的交互(Bug?)

时间:2014-10-19 19:31:07

标签: java swing jinternalframe jdesktoppane

在我早些时候调试时,我发现了一些有点奇怪的东西。使用以下代码,JDesktopPane的宽度直接或间接地发生变化,似乎没有任何交互。

import javax.swing.*;

public class Main
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setSize(960, 640);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setLocationRelativeTo(null);

        JDesktopPane desktop = new JDesktopPane();
        frame.add(desktop);
        System.out.println(desktop.getWidth()); // 0
        frame.setVisible(true);
        System.out.println(desktop.getWidth()); // ~1/2 monitor width
        new JInternalFrame();
        System.out.println(desktop.getWidth()); // monitor width
    }
}

我可以理解为什么宽度会在JFrame发生变化时发生变化,但为什么变化只是因为创建了JInternalFrame

0 个答案:

没有答案