gpt4 book ai didi

java - 程序启动后调用Canvas.setSize()和JFrame.pack()后JFrame变小

转载 作者:行者123 更新时间:2023-11-29 05:13:01 24 4
gpt4 key购买 nike

我正在创建一个程序,我希望能够“即时”设置它的大小(当程序运行时)。我尝试通过调用 Canvas.setSize(width, height) 来做到这一点然后 JFrame.pack()JFrame 上其中包含 Canvas .问题是调用这些方法后,JFrame 会调整大小,因此只有图标以及关闭和最小化按钮可见。如何在程序运行时更改大小?我必须调用其他东西吗?

提前致谢!

最佳答案

您不应在添加到 JFrame 的任何组件上使用 setSize() 方法。

Swing 使用布局管理器。 pack() 方法将调用布局管理器,布局管理器通常会使用组件的首选大小来确定组件的大小/位置。

我猜你的 Canvas 类正在进行自定义绘画,因此默认情况下首选大小为零,因此没有任何内容可显示。

解决方案是覆盖 Canvas 类中的 getPreferredSize() 方法以返回适当的大小。

另外,不要称你为 Canvas 类,因为有一个 AWT 类就是这个名字,所以它会让人感到困惑。如果您使用的是 AWT Canvas 类,则应该改用 JPanel 类来进行自定义绘画。

关于java - 程序启动后调用Canvas.setSize()和JFrame.pack()后JFrame变小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624408/

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