奇怪的Java画布大小输出

时间:2013-01-12 22:23:12

标签: java canvas awt

我是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());

为什么要改变尺寸?

1 个答案:

答案 0 :(得分:1)

首选/最小/最大尺寸是布局管理者对您的组件可能如何布局的“建议”,我们没有他们将使用的gurenttee。

BorderLayout将尝试使用可用空间将组件填充到

现在,使用pack,框架的大小(通常)已设置为内容窗格的首选大小。

所以,现在你问,为什么它没有设置它提供的东西。答案是,框架还需要包括框架装饰,从可用空间中减去(框架大小 - 装饰插图=可用空间),您还需要考虑菜单栏