[英]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.