您的位置:首页 > 产品设计 > UI/UE

Java_GUI_布局_箱式布局

2006-02-13 14:13 330 查看
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class BoxLayoutTest
{

public static void main(String[] args)
{
BoxLayoutFrame frame = new BoxLayoutFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class BoxLayoutFrame extends JFrame
{
public BoxLayoutFrame()
{
setTitle("箱式布局");
setSize(300,200);

Container con = getContentPane();
BoxLayoutPanel panel = new BoxLayoutPanel();
con.add(panel);
}
}

class BoxLayoutPanel extends JPanel
{
public JLabel lname,lpsd;
public JTextField fname;
public JPasswordField fpsd;
public JButton ok,cancel;
public BoxLayoutPanel()
{
BorderLayout layout = new BorderLayout();
setLayout(layout);

lname = new JLabel("用户名");
lpsd = new JLabel("密 码");
fname = new JTextField(10);
fname.setMaximumSize(fname.getPreferredSize());//最大尺寸等于完美尺寸
fpsd = new JPasswordField(10);
fpsd.setMaximumSize(fname.getPreferredSize());
ok = new JButton("确定");
cancel = new JButton("重置");

Box hbox1 = Box.createHorizontalBox();//水平
Box hbox2 = Box.createHorizontalBox();
Box hbox3 = Box.createHorizontalBox();

hbox1.add(lname);
hbox1.add(Box.createHorizontalStrut(50));//支撑柱
hbox1.add(fname);

hbox2.add(lpsd);
hbox2.add(Box.createRigidArea(new Dimension(50,20)));//固定区 20是箱子的大小
hbox2.add(fpsd);

hbox3.add(Box.createHorizontalStrut(48));
hbox3.add(ok);
hbox3.add(Box.createHorizontalGlue());//弹簧
hbox3.add(cancel);
hbox3.add(Box.createHorizontalStrut(48));

Box vbox = Box.createVerticalBox();//垂直
vbox.add(hbox1);
vbox.add(hbox2);
vbox.add(Box.createVerticalStrut(10));
vbox.add(hbox3);

add(vbox);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: