小杜想说:这些都是本人自学的练习,纯属分享,有问题大家可以一起探讨
FlowLayout:流式布局
import java.awt.Button;
import java.awt.Frame;
public class FlowLayout {
private static int LEFT;
private static int RIGHT;
public static void main(String[] args) {
//1.创建一个window对象
Frame frame=new Frame("这里是测试FlowLayout流式布局");
//2.通过setLayout方法设置容器的布局管理器
//frame.setLayout(new FlowLayout((FlowLayout.LEFT), 20, 20));
//右对齐
frame.setLayout(new java.awt.FlowLayout((FlowLayout.RIGHT), 20, 20));
//左对齐
//frame.setLayout(new java.awt.FlowLayout((FlowLayout.LEFT), 20, 20));
//3.添加多个按钮到frame中
for(int i=0;i<100;i++){
frame.add(new Button("按钮"+1));
}
//4.设置最佳大小,pack方法
frame.pack();
//设置window的可见
frame.setVisible(true);
}
}
BorderLayout:NORTH,SOUTH,WEST,EAST,CENTER
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
public class BorderLayoutDemo {
public static void main(String[] args) {
Frame frame =new Frame("这里演示BorderLayoutDemo");
//给frame设置BorderLayout布局管理器
frame.setLayout(new BorderLayout(30,10));
//往frame指定区域添加组件
frame.add(new Button("北侧按钮"),BorderLayout.NORTH);
frame.add(new Button("南侧按钮"),BorderLayout.SOUTH);
frame.add(new Button("中间按钮"),BorderLayout.CENTER);
frame.add(new Button("西侧按钮"),BorderLayout.EAST);
frame.add(new Button("东侧按钮"),BorderLayout.WEST);
//最佳大小,pack()方法
frame.pack();
frame.setVisible(true);
}
}
public class BorderLayoutDemo2 {
public static void main(String[] args) {
Frame frame =new Frame("这里演示容器Box中的默认组件BorderLayoutDemo");
//创建一个水平排列组件的Box容器
Box hBox =Box.createHorizontalBox();
//往当前容器中添加两个按钮
hBox.add(new Button("水平按钮1"));
hBox.add(new Button("水平按钮2"));
//创建一个垂直排列组件的Box容器
Box vBox=Box.createVerticalBox();
//往当前容器中添加两个按钮
vBox.add(new Button("垂直按钮1"));
vBox.add(new Button("垂直按钮2"));
//把两个Box容器添加到Frame中展示
frame.add(hBox,BorderLayout.NORTH);
frame.add(vBox);
frame.pack();
frame.setVisible(true);
}
}
public class BorderLayoutDemo3 {
public static void main(String[] args) {
Frame frame =new Frame("这里演示容器Box中的分割作用");
//创建一个水平排列组件的Box容器
Box hBox =Box.createHorizontalBox();
//往当前容器中添加三个按钮hBox,需要在多个按钮中添加分割
hBox.add(new Button("水平按钮1"));
hBox.add(Box.createHorizontalGlue());
hBox.add(new Button("水平按钮2"));
hBox.add(Box.createHorizontalStrut(30));
hBox.add(new Button("水平按钮3"));
//创建一个垂直排列组件的vBox容器
Box vBox=Box.createVerticalBox();
//往当前容器中添加三个按钮,需要在多个按钮中添加分割
vBox.add(new Button("垂直按钮1"));
vBox.add(Box.createVerticalGlue());
vBox.add(new Button("垂直按钮2"));
vBox.add(Box.createVerticalStrut(30));
vBox.add(new Button("垂直按钮3"));
//把两个Box容器添加到Frame中展示
frame.add(hBox,BorderLayout.NORTH);
frame.add(vBox);
frame.pack();
frame.setVisible(true);
}
}
GirdLayout:网格布局(计算器页面)
public class GridLayout {
public static void main(String[] args) {
Frame frame =new Frame("计算器");
//1.创建一个Panel对象,里面存放一个TextField组件
Panel p=new Panel();
p.add(new TextField(30));
//2.把当前这个Panel添加到frame的北边区域
frame.add(p,BorderLayout.NORTH);
//3.创建Panel对象,并且设置它的布局管理器为GridLayout
Panel p2=new Panel();
p2.setLayout(new java.awt.GridLayout(3, 5, 4, 4));
//往Panel中添加内容
for (int i = 0;i < 10; i++) {
p2.add(new Button(i+""));
}
p2.add(new Button("+"));
p2.add(new Button("-"));
p2.add(new Button("*"));
p2.add(new Button("/"));
p2.add(new Button("."));
//5.把当前Panel添加到frame中
frame.add(p2);
frame.pack();
frame.setVisible(true);
}
}
CardLayout:(给按钮添加事件)
public class CardLayoutDemo {
public static void main(String[] args) {
Frame frame =new Frame("这里演示CardLayoutDemo");
//创建一个Panel,用来存储多张卡片
Panel p1=new Panel();
//创建卡片布局CardLayout,并且把该对象设置给之前创建的容器中
CardLayout cardLayout = new CardLayout();
p1.setLayout(cardLayout);
//往Pane中存储多个组件
String[] names={"第一张","第二张","第三张","第四张","第五张"};
for (int i = 0; i < names.length; i++) {
p1.add(names[i],new Button(names[i]));
}
//把panel放到frame的中间区域
frame.add(p1);
//创建另外一个panel p2,用来存储多个按钮
Panel p2=new Panel();
//创建五个按钮组件
Button b1=new Button("上一张");
Button b2=new Button("下一张");
Button b3=new Button("第一张");
Button b4=new Button("最后一张");
Button b5=new Button("第三张");
//创建一个事件监听器,监听按钮的点击事件
ActionListener listener=new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String actionCommand = e.getActionCommand();//这个字符串是按钮上的文字
switch(actionCommand){
case"上一张":
cardLayout.previous(p1);
break;
case"下一张":
cardLayout.next(p1);
break;
case"第一张":
cardLayout.first(p1);
break;
case"最后一张":
cardLayout.last(p1);
break;
case"第三张":
cardLayout.show(p1,"第三张");
break;
}
}
};
//把当前的这个事件监听器和多个按钮绑定在一起
b1.addActionListener(listener);
b2.addActionListener(listener);
b3.addActionListener(listener);
b4.addActionListener(listener);
b5.addActionListener(listener);
//把按钮添加到容器p2中
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
//把p2放到frame的南边区域
frame.add(p2,BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
BoxLayout:(水平,垂直)
public class BoxLayoutDemo {
public static void main(String[] args) {
Frame frame = new Frame("这里是测试BoxLayout");
//基于frame容器创建一个BoxLayout对象,并且,该对象存放组件是垂直存放
BoxLayout boxLayout =new BoxLayout(frame,BoxLayout.X_AXIS);
//把BoxLayout对象设置给Frame
frame.setLayout(boxLayout);
//往frame中添加两个按钮组件
frame.add(new Button("按钮1"));
frame.add(new Button("按钮2"));
frame.pack();
frame.setVisible(true);
}
}