• Swing布局管理器


    Swing中使用的所有布局管理器都可以实现LayoutManager接口。Swing中有五种常见的布局管理器分别为FlowLayoutBorderLayoutGridLayoutCardLayout、绝对定位。使用方法及常量可以查找JDK文档。

    一:FlowLayout属于流式布局管理器,使用此种布局方式会使所有的组件想流水一样依次进行排序。

    <span style="font-size:14px;">package org.cjl.demo18.layoutdemo;
    
    import java.awt.FlowLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class FlowLayoutDemo01 {
         public static void main(String[] args){
        	 JFrame frame = new JFrame("welcome to mldn");
        	 //设置窗体中的布局管理器为FlowLayout,所有组件居中对齐,水平和垂直距离为3.
        	 frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
        	 JButton but = null;
        	 for(int i=0;i<9;i++){
        		 but = new JButton("按钮  - "+i);
        		 frame.add(but);//加入按钮
        		 
        	 }
        	 frame.setSize(280,130);
        	 frame.setVisible(true);
         }
    }
    </span>
    显示的结果是


    所有的组件按照顺序依次向下排列,每个组件之间的顺序是3.

    二:BorderLayout是将一个窗体的版面划分为东、西、南、北、中区域,可以直接将需要的组件放到这区域中。

    <span style="font-size:14px;">package org.cjl.demo18.layoutdemo;
    
    import java.awt.BorderLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class BorderLayoutDemo01 {
       public static void main(String[] args){
    	   JFrame frame = new JFrame("Welocme to mldn");
    	   //设置窗体中的布局管理器为BorderLayout,所有的组件水平和垂直间距为3
    	  frame.setLayout(new BorderLayout(3,3));
    	  frame.add(new JButton("东(EAST)"),BorderLayout.EAST);
    	  frame.add(new JButton("西(WEST)"),BorderLayout.WEST);
    	  frame.add(new JButton("南(SOUTH)"),BorderLayout.SOUTH);
    	  frame.add(new JButton("北(NORTH)"),BorderLayout.NORTH);
    	  frame.add(new JButton("中(CENTER)"),BorderLayout.CENTER);
    	  
    	  frame.pack();    //自动调整窗体大小
    	  frame.setVisible(true);
       }
    }
    </span>


    三:GridLayout:是以表格的形式进行管理的,在使用此布局管理器时必须设置显示的行数

    package org.cjl.demo18.layoutdemo;
    
    import java.awt.GridLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class GridLayoutDemo01 {
          public static void main(String[] args){
        	  JFrame frame = new JFrame("welcome to mldn");
        	  //设置窗体中的布局管理为GridLayout,按3X5进行排列,水平和垂直间距为3.
        	  frame.setLayout(new GridLayout(3,5,3,3));
        	  JButton but = null;
        	  for(int i=0;i<13;i++){
        		  but = new JButton("按钮 - "+i);
        		  frame.add(but);
        	  }
        	  frame.pack();//根据组件自动调整窗体大小
        	  frame.setVisible(true);
          }
    }
    
    显示结果


    四:CardLayout:是将一组组件彼此重,像卡片一样。

    package org.cjl.demo18.layoutdemo;
    
    
    import java.awt.CardLayout;
    import java.awt.Container;
    
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    
    public class CardLayoutDemo01 {
         public static void main(String[] args){
        	 JFrame frame = new JFrame("welcome to mldn");
        	 Container cont = frame.getContentPane();//取得 窗体容器
        	 CardLayout card = new CardLayout();
        	 frame.setLayout(card);//设置布局管理器
        	 cont.add(new JLabel("标签-A",JLabel.CENTER),"first");
        	 cont.add(new JLabel("标签-B",JLabel.CENTER),"second");
        	 cont.add(new JLabel("标签-C",JLabel.CENTER),"third");
        	 cont.add(new JLabel("标签-D",JLabel.CENTER),"fourth");
        	 cont.add(new JLabel("标签-E",JLabel.CENTER),"fifth");
        	 frame.pack();//自动调整窗体大小
        	 
        	 frame.setVisible(true);
        	 card.show(cont, "fourth");
        	 for(int i=0;i<5;i++){
        		 try{
        			 Thread.sleep(3000); //加入显示延迟
        		 }catch(InterruptedException e){
        			 e.printStackTrace();
        		 }
        		 card.next(cont);//从容器中取出组件
        		 
        	 }
         }
    }



  • 相关阅读:
    [Linux]Linux常用命令: zip/unzip 压缩和解压缩命令
    [ORACLE] REHL7.5 下oracle 19.3 安装
    [ORACLE] oracle table export exp/imp
    [linux] linux信号
    [SAP HANA]SAP HANA 内存管理详解
    [SAP HANA]SAP HANA的系统限制
    [SAP HANA]SAP HANA的组件
    [SAP HANA] SAP HANA的架构
    [SAP HANA] 如何设定HANA数据库存的类型 生产/测试/开发/定制
    [SAP HANA] SAP HANA连接不上, 连接超限 保留管理员连接
  • 原文地址:https://www.cnblogs.com/Rollins/p/4524895.html
Copyright © 2020-2023  润新知