繁体   English   中英

Java:将Canvas添加到JFrame时,如何防止调整Canvas的大小?

[英]Java: How can I prevent Canvas from being resized when it is added to a JFrame?

在我的主目录中运行此命令时:

    Canvas can = new Canvas();

    can.setSize(400, 400);

    System.out.print(can.getWidth() + ", " + can.getHeight() + " ");

    JFrame frame = new JFrame();

    frame.add(can);
    frame.pack();
    frame.setResizable(false);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

    System.out.println(can.getWidth() + ", " + can.getHeight());

控制台显示为:400、400 410、410

好像当我将Canvas添加到我的JFrame并打包JFrame时,它为Canvas的宽度和高度增加了10像素。 有什么办法可以防止这种情况发生,并获得400 x 400的画布吗?

不要使用Canvas,这是AWT组件。

使用Swing时,应使用JPanel ,然后重写面板的getPreferredSize()以返回所需的大小。

同样,setSize()不执行任何操作。 布局管理器将根据布局管理器的规则确定每个组件的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM