gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:42:31 26 4
gpt4 key购买 nike

在我的主程序中运行此命令时:

    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, 400410, 410

似乎当我将 Canvas 添加到 JFrame 并打包 JFrame 时,它​​会为 Canvas 的宽度和高度添加额外的 10 个像素。有什么方法可以防止这种情况发生并获得精确的 400 x 400 Canvas 吗?

最佳答案

不要使用 Canvas,它是一个 AWT 组件。

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

此外,setSize() 也不执行任何操作。布局管理器会根据布局管理器的规则来决定各个组件的大小。

关于Java:如何防止 Canvas 在添加到 JFrame 时调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41228625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com