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) ;  //遍历
        }
    }
}

效果图:




原文地址:https://www.cnblogs.com/emoji/p/4436818.html