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