JAVA入门之Swing中空布局 (绝对布局) 的使用

2025-11-10 05:11:36

1、步骤一 : 新建工程和类,写一个初步的窗口程序

我们的窗口中什么也不添加,在 “initUI”中我们将使用“空布局”,向窗口容器中添加组件! 

JAVA入门之Swing中空布局 (绝对布局) 的使用

2、步骤二 : 初始化组件,将组件以“空布局”的形式添加到窗口容器中

我们这里构建一个应用的登陆界面,包含两个标签(JLabel),两个输入框(JTextField),两个按钮(JButton);我们将容器的布局方式设置为 "空布局",并将组件以绝对位置的形式(这就是“空布局”也被称为“绝对布局”的原因)放置在容器中!

相关代码为 : 

// javax.swing.JPanel 代表一张画布(标准称呼是容器)

// 其代表一个空间,用户放置其他可视性的控件 比如按钮,文本等

JPanel contentPanel = new JPanel();

// 设置这个容器的布局方式是空布局

contentPanel.setLayout(null);

// 初始化所需组件

JLabel nameLabel = new JLabel("用户名 :");

JTextField nameTxt = new JTextField();

JLabel pwLabel = new JLabel("密码 :");

JTextField pwTxt = new JTextField();

JButton forgetPwBtn = new JButton("忘记密码");

JButton loginBtn = new JButton("登陆");

// 将组件全部添加到容器中

contentPanel.add(nameLabel);

contentPanel.add(nameTxt);

contentPanel.add(pwLabel);

contentPanel.add(pwTxt);

contentPanel.add(forgetPwBtn);

contentPanel.add(loginBtn);

// 调用 setBounds(x,y,width,height) 设置组件的特定位置

// 对应四个参数分别为 : 横坐标,纵坐标,组件宽度,组件高度

nameLabel.setBounds(140, 100, 60, 35);

nameTxt.setBounds(210, 100, 250, 35);

pwLabel.setBounds(140, 160, 60, 35);

pwTxt.setBounds(210, 160, 250, 35);

forgetPwBtn.setBounds(140, 220, 100, 35);

loginBtn.setBounds(350, 220, 100, 35);

// 最后将这张画布添加到窗口中显示

getContentPane().add(contentPanel);

我们要重点关注所有组件调用的 setBounds 方法, 这个方法是“空布局”的精髓!通过这个方法,我们把已添加到容器中的组件放置在一个固定的位置上!并且可以设置组件的显示高度和宽度!

JAVA入门之Swing中空布局 (绝对布局) 的使用

3、步骤三 : 运行查看界面效果

我们可以看到,组件按照我们的设置被放置在界面的特定区域!通过界面,我们可以看到 setBounds(x, y, width, height) 方法四个参数的具体含义!

JAVA入门之Swing中空布局 (绝对布局) 的使用

4、步骤四 : 总结

"空布局" 又称 "绝对布局", 就是没有布局的含义,界面所有元素都需要我们手动指定具体位置(通过 x,y两个坐标)和大小(通过 width, height两个尺寸)。对于一些特殊的界面,如果无法通过常用的那几种布局方式来实现或者实现难度较大时,我们可以考虑使用这种布局方式!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢