Java GUI在创建表单后调整表单大小

Java GUI在创建表单后调整表单大小,java,swing,user-interface,Java,Swing,User Interface,以上是我的GUI应用程序的主要方法。我想知道在这个主方法运行之后是否可以更改表单的大小。如果我想在单击按钮时更改大小,该怎么办?问题是我无法访问帧。这必须以某种方式实现。我到处寻找解决办法,但找不到。谢谢。您始终可以通过SwingUtilities.getWindowAncenter(您的组件)从它所持有的任何组件访问顶级JFrame。此方法返回一个窗口对象,但如果您100%确定它是JFrame,则始终可以强制转换它(或者首先测试它是否是JFrame) 一旦获得,您始终可以对其调用pack(),

以上是我的GUI应用程序的主要方法。我想知道在这个主方法运行之后是否可以更改表单的大小。如果我想在单击按钮时更改大小,该怎么办?问题是我无法访问帧。这必须以某种方式实现。我到处寻找解决办法,但找不到。谢谢。

您始终可以通过
SwingUtilities.getWindowAncenter(您的组件)
从它所持有的任何组件访问顶级JFrame。此方法返回一个
窗口
对象,但如果您100%确定它是JFrame,则始终可以强制转换它(或者首先测试它是否是JFrame)


一旦获得,您始终可以对其调用
pack()
,将其调整为所包含组件的首选尺寸。一般来说,您希望避免直接设置大小,因为这可能会在以后修改程序时导致错误。

您始终可以通过
SwingUtilities.getWindowAncenter(您的组件)
从它所持有的任何组件访问顶级JFrame。此方法返回一个
窗口
对象,但如果您100%确定它是JFrame,则始终可以强制转换它(或者首先测试它是否是JFrame)


一旦获得,您始终可以对其调用
pack()
,将其调整为所包含组件的首选尺寸。一般来说,您希望避免直接设置大小,因为这可能会导致以后修改程序时出现错误。

您应该将
JFrame
声明为类成员。您还应该将程序放在中,而不是将所有内容都放在
main
方法中。您应该将
JFrame
声明为类成员。您还应该将程序放在中,而不是将所有内容都放在
main
方法中nullpointerexception@NBreunig3:那么你很可能在错误的时间做这件事。这只在图形用户界面被渲染后才起作用。是的,我修复了这个错误。谢谢你的帮助!当使用SwingUtilities方法时,我调用.pack,它会得到一个nullpointerexception@NBreunig3:那么你很可能在错误的时间做这件事。这只在图形用户界面被渲染后才起作用。是的,我修复了这个错误。谢谢你的帮助!
 public static void main(String[] args) {    
    JFrame frame = new JFrame("Fantasy Football Toolkit");
    frame.setContentPane(new GUI().mainPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(350, 475);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}