将Java Swing应用程序大小限制为屏幕大小?

时间:2012-07-26 21:34:06

标签: java swing user-interface

我的应用程序目前对window(monitor)来说太大了。我已经在应用程序中构建了一个滚动条来容纳它,但它仍然延伸到窗口而不是使用滚动条。最初,外框的初始化调用pack(),然后调用setVisible(true)

我试图设置框架的大小,但似乎没有效果。外框是标头,我在其上调用getWindow()来设置大小。致电mframe.getWindow().setSize(640, 480);不会做任何事情。

这是当前的行为: enter image description here

这就是我想要的: enter image description here

编辑:在启动时将应用程序设置为全屏的好方法是什么?

2 个答案:

答案 0 :(得分:2)

  

我试图设置框架的大小,但似乎没有效果。

那是因为你在窗口上打电话给包。 pack()将组件的大小设置为其包含的组件的最大值,这会使setSize()无用。

来自api:

  

pack()使此窗口的大小适合其子组件的首选大小和布局。

答案 1 :(得分:1)

也许您想将Toolkit#getScreenSizesetSize结合使用。类似的东西(例如,将其设置为屏幕大小的特定百分比):

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
component.setSize((int)(screenSize.width * widthPercent),
                  (int)(screenSize.height * heightPercent));

如果您希望自己的应用最大化,可能需要查看setExtendedState,例如

myFrame.setExtendedState(Frame.MAXIMIZED_BOTH);