我是Java的新手(虽然我对JavaScript有广泛的了解),
我正试图与Canvas
合作,这导致了这个奇怪的问题
检查代码here。
正如您所看到的,在我定义Canvas
的大小后,我正在尝试打印它
但它没有正确打印尺寸。
setMinimumSize(new Dimension(WIDTH,HEIGHT));
setMaximumSize(new Dimension(WIDTH,HEIGHT));
setPreferredSize(new Dimension(WIDTH,HEIGHT));
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(this, BorderLayout.CENTER);
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println(getWidth());
为什么要改变尺寸?
答案 0 :(得分:1)
首选/最小/最大尺寸是布局管理者对您的组件可能如何布局的“建议”,我们没有他们将使用的gurenttee。
BorderLayout将尝试使用可用空间将组件填充到
中现在,使用pack,框架的大小(通常)已设置为内容窗格的首选大小。
所以,现在你问,为什么它没有设置它提供的东西。答案是,框架还需要包括框架装饰,从可用空间中减去(框架大小 - 装饰插图=可用空间),您还需要考虑菜单栏