SpringLayout布局管理器

package edu.sdkd.ch05;
//这段代码主要是为读者展示如何使用SpringLayout布局管理器为组件进行布局
import javax.swing.*;
import java.awt.*;
//产生不同的箱子布局管理器对象,每个对象放置不同的控件
public class test10
{
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args)
{
JFrame jf=new JFrame("测试程序");
jf.setSize(WIDTH,HEIGHT);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
JPanel contentPane=new JPanel();
jf.setContentPane(contentPane);
JButton b1=new JButton("测试程序模块1");//创建了两个普通按钮组件、一个标签组件,将它们添加到中间容器中
JButton b2=new JButton("测试程序模
块2");
JLabel l=new JLabel("测试程序");
contentPane.add(l);
contentPane.add(b2);
contentPane.add(b1);
// 创建一个 SpringLayout布局管理器,并且将之作为中间容器的布局方式
SpringLayout lay=new SpringLayout();
contentPane.setLayout(lay);
//针对每个组件设置其与边界的距离
lay.putConstraint(SpringLayout.NORTH,l, 5,SpringLayout.NORTH,contentPane);
lay.putConstraint(SpringLayout.WEST,l, 85,SpringLayout.WEST,contentPane);
lay.putConstraint(SpringLayout.EAST,l, 85,SpringLayout.EAST,contentPane);
lay.putConstraint(SpringLayout.NORTH,b1, 55,SpringLayout.NORTH,contentPane);
lay.putConstraint(SpringLayout.WEST,b1, 5,SpringLayout.WEST,contentPane);
lay.putConstraint(SpringLayout.EAST,b1, 25,SpringLayout.EAST,contentPane);
lay.putConstraint(SpringLayout.NORTH,b2, 105,SpringLayout.NORTH,contentPane);
lay.putConstraint(SpringLayout.WEST,b2, 5,SpringLayout.WEST,contentPane);
lay.putConstraint(SpringLayout.EAST
,b2, 25,SpringLayout.EAST,contentPane);
}
}

GroupLayout布局管理器
package edu.sdkd.ch05;
//这段代码主要是为读者展示如何使用GroupLayout布局管理器进行布局
import java.awt.Container;
import java.awt.HeadlessException;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class test11 extends JFrame
{
private static final long serialVersionUID=1L;
public test11() throws HeadlessException
{
Container c=getContentPane();
//创建一个中间容器,并且创建一个GroupLayout布局管理器对象
GroupLayout layout=new GroupLayout(c);
JButton b1=new JButton("按钮 1");//创建
两个普通按钮组件、文本框组件
JButton b2=new JButton("按钮 2");
JTextField text=new JTextField("文本");
GroupLayout.SequentialGroup hsg=layout.createSequentialGroup();
//创建一个hsg组,将两个按钮一个一个的添加到组里面
hsg.addComponent(b1);
hsg.addComponent(b2);
GroupLayout.ParallelGroup hpg=
layout.createParallelGroup(GroupLayout.Alignment.CENTER);
//创建一个hpg组,将文本框组件和上面的那个组添加到其中,并且居中排列
hpg.addComponent(text).addGroup(hsg);
layout.setHorizontalGroup(hpg); //沿水平线来确定hpg组中两个按钮组件的位置
GroupLayout.ParallelGroup vpg=layout.createParallelGroup();
//创建一个vpg组,按照水平线来排列两个按钮组件的位置
vpg.addComponent(b1);
vpg.addComponent(b2);
GroupLayout.SequentialGroup vsg=layout.createSequentialGroup();// 将文本框组件和前面的容纳两个按钮组件的组同时添加到vsg组中
vsg.addComponent(text).addGroup(vpg);
layout.setVerticalGroup(vsg); //沿垂直线来确定vsg中vpg和文本框组件的位置
this.setLayout(layout);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
public static void main(String[] args)
{
test11 demo=new test11();
demo.setVisible(true);
}
}
程序运行


经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
