0

在我之前调试的时候,我发现了一些奇怪的东西。有了下面的代码,宽度的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创建了 a 就更改了?

4

0 回答 0