java swing的四种常用布局
第三种卡片布局可用于完成简单的抽奖程序,这个还是挺有趣的。
效果图:
效果图
效果图
效果图:
一:流式布局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) ; //遍历 } } }
效果图: