Java - 无法将JFrame设置为合适的大小

时间:2012-01-08 17:36:58

标签: java swing

我正在将扫雷作为一个学校项目。它已接近完成,但现在唯一的问题是设置JFrame的大小。我只是无法找到一种方法来将帧设置为我想要的大小。

该程序看起来几乎就像Windows XP上原始扫雷的Swing版本。

主框架的布局是流程布局。有一个时间顶部面板,地雷和重置按钮。顶部面板使用流程布局,底部面板使用按钮的网格布局。

我设置了框架内容窗格的首选大小。获得宽度很容易(一行中的字段数量*我的按钮大小),但问题是获得正确的高度。框架总是落到雷区的最后一排。

我也尝试了pack(),但它将其大小调整为内容窗格的首选大小,这不是正确的大小。我该怎么办?

3 个答案:

答案 0 :(得分:3)

没有JFrame(或更好的contentPane)使用FlowLayout,因为这不会为JFrame提供其组件的最佳大小。相反,为什么不让它使用默认的BorderLayout?您的我的单元格可能会覆盖它们的getPreferredSize()方法,因此将指示封闭容器的大小。与往常一样,在使用组件填充JFrame之后,在调用pack()之前调用setVisible(true)

答案 1 :(得分:2)

添加后,为GridLayoutpack()框架中的按钮设置首选尺寸。

答案 2 :(得分:2)

不要尝试手动设置大小。您应该让每个组件以其首选大小显示,并使用pack()方法。

  

主框架的布局是流程布局。时间顶部面板,地雷和重置按钮

我会使用BorderLayout。创建一个顶部面板并将其添加到NORTH。

然后为网格创建一个面板并将其添加到CENTER。如果网格大小调整中的按钮出现问题,请尝试将JPanel创建为包装面板。将按钮添加到此面板,然后将此面板添加到框架的CENTER。该小组将保留其首选大小。