一:流式布局FlowLayout
实现代码:
import java.awt.FlowLayout ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
class Tester
{
public static void main(String args[])
{
JFrame frame = new JFrame("流式布局") ;
frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3)) ;
JButton button = null ;
for(int i=0;i<20;i++)
{
button = new JButton("按钮"+i) ;
frame.add(button) ;
}
frame.setSize(600,600) ;
frame.setVisible(true) ;
}
}
效果图:
二:边界布局管理器
代码:
import java.awt.BorderLayout ;
import javax.swing.JButton ;
import javax.swing.JFrame ;
class Tester
{
public static void main(String args[])
{
JFrame frame = new JFrame("边界布局") ;
frame.setLayout(new BorderLayout(3,3)) ;
frame.add(new JButton("东"),BorderLayout.EAST) ;
frame.add(new JButton("西"),BorderLayout.WEST) ;
frame.add(new JButton("南"),BorderLayout.SOUTH) ;
frame.add(new JButton("北"),BorderLayout.NORTH) ;
frame.add(new JButton("中"),BorderLayout.CENTER) ;
frame.setSize(600,600) ;
frame.setVisible(true) ;
}
}
效果图
三:表格布局(GridLayout)
代码:
import java.awt.GridLayout ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
class Tester
{
public static void main(String args[])
{
JFrame frame = new JFrame("表格布局") ;
frame.setLayout(new GridLayout(3,5,13,13)) ; //四个数字依次对应 行 列 水平间距,垂直间距
JButton button = null ;
for(int i=0;i<20;i++)
{
button = new JButton("按钮"+i) ;
frame.add(button) ;
}
frame.pack() ; //根据组件所需要的面板大小自动调整
frame.setVisible(true) ;
}
}
效果图
四:卡片布局
代码:
import java.awt.Container ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import java.awt.CardLayout ;
class Tester
{
public static void main(String args[])
{
JFrame frame = new JFrame("卡片管理") ;
CardLayout card = new CardLayout() ;
frame.setLayout(card) ;
Container con = frame.getContentPane() ;
con.add(new JLabel("候选人一号",JLabel.CENTER),"first") ;
con.add(new JLabel("候选人二号",JLabel.CENTER),"second") ;
con.add(new JLabel("候选人三号",JLabel.CENTER),"third") ;
con.add(new JLabel("候选人四号",JLabel.CENTER),"fourth") ;
con.add(new JLabel("候选人五号",JLabel.CENTER),"fifth") ;
frame.pack();
frame.setVisible(true) ;
card.show(con,"third") ;//展示第三个
for(int i=0;i<5;i++)
{
try
{
Thread.sleep(1500) ;
}catch(InterruptedException ie)
{
ie.printStackTrace() ;
}
card.next(con) ; //遍历
}
}
}
效果图: