窗口大小错误或未在Swing中设置

时间:2014-05-30 09:40:42

标签: java swing jframe

这是我的第一个挥杆应用程序。我正在尝试创建一个窗口并添加一个按钮。单击该按钮时,它应在控制台上显示一些值。 Everythign工作正常,但窗口非常小。我已经指定了800 * 600,但是窗口尺寸也很小,就是它只包装了按钮尺寸。

这是我的代码段:

JFrame frame = new JFrame("My Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(new MyClass(), BorderLayout.CENTER);
frame.setSize(800, 600);
frame.pack();
frame.setVisible(true);
来自MyClass.java的

片段:

setLayout(new GridBagLayout());
JButton button = new JButton("Button");
button.addActionListener(this);
add(button);

如何使窗口大小为800 * 600?

3 个答案:

答案 0 :(得分:3)

应始终在基于pack()的GUI上调用JFrame方法,因此请将其保留。它将GUI缩小到显示其中组件所需的最小大小。但是,在检查大于最小尺寸之前,请不要再调用setSize(Dimension)

答案 1 :(得分:0)

您正在调用pack方法。 api说:"它导致此窗口的大小适合其子组件的首选大小和布局"

您尚未指定首选尺寸。尝试这样做:

frame.setPreferredSize(new Dimension(800,600));

答案 2 :(得分:-1)