设置JFrame的组件'相对于窗口大小的大小

时间:2015-03-18 17:28:30

标签: java swing fonts resize jframe

我有一个可调整大小的JFrame和(因为我对Layouts了解不多)将其JPanel布局设置为null。

有没有办法告诉我的程序调整每个组件相对于窗口大小的大小?

e.g。我有一个200x100的默认大小JFrame,按钮是20x10。如果我将窗口大小调整为400x200,我希望按钮(仍然在相对于窗口边缘的相同位置)调整为40x20。

如果有效,是否有办法用字体做同样的事情?例如。尺寸为11×200x100,但尺寸为14×400x200。

2 个答案:

答案 0 :(得分:1)

无论您使用什么约定来扩展组件和字体,将布局设置为null都不是一个好主意。 Widgets behaving strangely when using "setlayout(null)"将深入了解为什么这容易出错。当您手动更改JFrame的大小时,Automatically size JPanel inside JFrame可能有助于缩放。

答案 1 :(得分:0)

向您的框架添加ComponentListener,并为特定的窗口大小创建一个包含组件的defaultSizes的表。每次调整窗口大小时都会调用componentResized(ComponentEvent e)。在其中,您可以调整组件的大小。或者您实现自己的LayoutManager。