java组件及事件处理(7、8)
–FlowLayout 和 BorderLayout比较
FlowLayout 和 BorderLayout是两种不同的布局方式
1.FlowLayout 将组件逐行排列,一行满了就换到另一行
不改变组件的大小
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Seven extends JFrame
{
JButton jb1;
JButton jb2;
JButton jb3;
JButton jb4;
JButton jb5;
JPanel jp;
public Seven(String s)
{
super(s);
FlowLayout f = new FlowLayout();
f.setAlignment(FlowLayout.CENTER);
f.setHgap(50);
f.setVgap(50);
setLayout(f);
setBounds(400, 400, 400, 400);
Container conn = getContentPane();
conn.setBackground(Color.cyan);
jb1 = new JButton("赤");
jb2 = new JButton("橙");
jb3 = new JButton("黄");
jb4 = new JButton("绿");
jb5 = new JButton("青");
jp = new JPanel();
jp.add(jb1);
jp.add(jb2);
jp.add(jb3);
jp.add(jb4);
jp.add(jb5);
add(jp);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
Seven a = new Seven("FlowLayout");
}
}
2.BorderLayout 是另一种布局方式
使用东西南北中的布局方式
如果不指定东西的位置,将会被放到中心位置
会改变组件的大小
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Eight extends JFrame
{
JButton jb1;
JButton jb2;
JButton jb3;
JButton jb4;
JButton jb5;
public Eight(String s)
{
super(s);
setLayout(new BorderLayout());
setBounds(400, 400, 400, 400);
Container conn = getContentPane();
conn.setBackground(Color.cyan);
jb1 = new JButton("赤");
jb2 = new JButton("橙");
jb3 = new JButton("黄");
jb4 = new JButton("绿");
jb5 = new JButton("青");
add(jb1,BorderLayout.NORTH);
add(jb2,BorderLayout.SOUTH);
add(jb3,BorderLayout.WEST);
add(jb4,BorderLayout.EAST);
add(jb5,BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
Eight a = new Eight("BorderLayout");
}
}