【发布时间】:2011-11-03 23:34:54
【问题描述】:
我正在学习一个开始的 Java 类,并且一项作业要求我编写一个类来表示一个 JPanel,该 JPanel 带有用于递增和递减值的按钮以及用于显示该值的标签。然后,我必须创建一个单独的类来实例化面板并将其添加到框架中。我试图通过运行 pack 方法调整框架大小以适应面板的大小。我尝试使用以下方法调用框架的打包方法:
SwingUtilities.getAncestorOfClass(JFrame.class, this).pack()
我收到“找不到符号 - 方法 pack()”错误。 getAncestorOfClass 肯定返回一个 JFrame,它是正确的 JFrame。当我从创建 JFrame 的驱动程序类内部运行 pack 方法时,没有问题。任何想法为什么它找不到打包方法?是因为我试图从一个单独的类文件中运行它吗?我也无法访问其他一些 JFrame 方法,例如 getContentPane,但我am 能够访问其他一些方法,例如 add。嗯?
【问题讨论】:
-
你为什么不直接打电话给
jframe.pack ();? -
就像我说的,我正在为一个类做这个,这个任务要求我创建一个单独的类来代表 JPanel。我不能简单地引用 JFrame,因为它没有在我需要调用
pack方法的类中定义。 -
您确定不必在 JPanel 上调用
pack吗?你写了Then, I have to create a separate class which instantiates the panel and adds it to a frame.,所以我想,你可以在那里打电话给pack。 -
JPanel 没有
pack方法,我的面板类扩展了JPanel。
标签: java swing user-interface jframe