使用Java JFrame自动缩放组件

时间:2015-12-29 00:17:05

标签: java resize jframe setbounds

我使用visualswing4eclipse在Java上编码。我的环境是Eclipse IDE版本:Luna Service Release 2(4.4.2)。我正在尝试编写一个函数,当用户更改窗口大小时,该函数会自动调整框架内所有组件的大小。这是代码:

private void componentComponentResized(ComponentEvent event) {

    int a=getContentPane().getWidth();
    int b=getContentPane().getHeight();
    Font font1 = new Font(Font.SANS_SERIF, 2, (int) (b*0.05));

    jTextField0.setBounds((int) (a*0.3), (int) (b*0.1), (int) (0.68*a), (int) (0.1*b));
    jLabel0.setBounds((int) (a*0.02), (int) (b*0.1), (int) (a*0.27), (int) (0.1*b));   
//  jLabel0.setFont(font1);
//  jTextField0.setFont(font1);
}

现在,setBounds正常工作,但如果我取消注释setFont,setBounds停止工作,就像我没有用setBound写行。我该如何解决这个问题?

编辑:我创建了新的GroupLayout以这种方式设置组件的位置:

 private void initComponents() {
 setLayout(new GroupLayout());

我可以在自动调整大小功能中使用此布局吗?如果没有,哪种布局对我来说是个不错的选择? Here's frame's view in basic size

0 个答案:

没有答案