JAVA学习Swing章节流布局管理器简单学习

JAVA学习Swing章节流布局管理器简单学习

package com.swing;

import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:流(FlowLayout)布局管理器是布局管理器中最基本的布局管理器,流布局管理器在整个容器中
 * 的布局正如其名,像流一样从左到右摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。
 * 默认情况下,组件在每一行上都是居中排列的,但是通过设置也可以更改组件在每一行上的排列位置
 * 
 * 2:FlowLayout类中具有三种构造方法
 * alignment参数使用流布局管理器后组件在每一行的具体摆放位置
 * horizGap参数以像素为单位指定组件之间的水平分割
 * vertGap参数以像素为单位指定组件之间的垂直分割
 * 
 * @author biexiansheng
 *
 */
public class FlowLayoutPosition extends JFrame{

    public FlowLayoutPosition(){
        setTitle("本窗体使用流布局管理器");//设置窗体标题
        Container container=getContentPane();//初始化容器
        //设置窗体使用流布局管理器,使组件右对齐,并且设置组件之间的水平间隔,和垂直间隔
        setLayout(new FlowLayout(1,10,10));//new一个构造方法
        //FlowLayout第一个参数设置为0每一行组件将按照左对齐排列
        //FlowLayout第一个参数设置为1每一行组件将按照中间对齐排列
        //FlowLayout第一个参数设置为2每一行组件将按照右对齐排列
        
        for(int i=0;i<10;i++){
   //在容器中添加10个按钮
            container.add(new JButton("button"+i));
            //new一个按钮构造方法,这种使用技巧勤加练习
        }
        setSize(300,200);//设置窗体的大小
        setVisible(true);//设置窗体可视化
        //设置窗体的关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args) {
        FlowLayoutPosition fl=new FlowLayoutPosition();
        //初始化对象调用构造方法
    }
}

实例运行结果如下

JAVA学习Swing章节流布局管理器简单学习

JAVA学习Swing章节流布局管理器简单学习

package com.swing;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:在默认不指定窗体布局的情况下,Swing组件的布局模式是边界(BorderLayout)
 * 布局管理器
 * 
 * 2:边界布局管理器还可以将容器划分为东西南北中5个区域,可以将组件加入到这5个区域中
 * 边界布局管理器可将标签放置在窗体中间,并且整个组件占据了窗体的所有的空间
 * 
 * 3:容器调用Container类的add()方法添加组件时可以设置此组件在边界布局管理器中的区域
 * 区域的控制可以由BorderLayout类中的成员变量来决定
 * @author biexiansheng
 *
 */
public class BorderLayoutPosition extends JFrame{

    //定义组件摆放位置的数组
    String[] border={BorderLayout.CENTER,BorderLayout.NORTH
            ,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST};
    /*1:将布局以及组件名称分别放置在数组中,然后设置容器使用边界布局管理器
     * 最后在循环中将按钮添加到容器中,并设置组件布局
     *2:add()方法提供了在容器中添加组件的功能,并同时设置组件的摆放位置 
     * */
    //定义按钮组件上面的文字ESWN  东南西北    上北下南左西右东
    String[] buttonName={"center button","north 北 button",
            "south 南 button","west 西 button","east 东 button",};
    public BorderLayoutPosition(){
   //定义一个构造方法 
        setTitle("这个窗体使用边界布局管理器");//
        Container container=getContentPane();//定义一个容器
        setLayout(new BorderLayout());//设置容器为边界布局管理器
        //setLayout()语法为设置布局管理器
        
        //在容器中添加按钮,并设置按钮布局
        for(int i=0;i<border.length;i++){
            container.add(border[i],new JButton(buttonName[i]));
        }
        
        //设置窗体的外部属性
        setSize(350,200);//设置窗体的大小
        setVisible(true);//设置窗体可见
        //设置窗体的关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BorderLayoutPosition bl=new BorderLayoutPosition();
        //实例化对象的时候就调用了构造方法
    }

}

实例运行结果如下

JAVA学习Swing章节流布局管理器简单学习

package com.swing;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:网格(GridLayout)布局管理器将容器划分为网格,所以组件可以按行和列进行排列
 * 在网格布局管理器中,每一个组件的大小都相同,并且网格中空格的个数由网格的行数和列数决定
 * 如一个两行两列的网格能产生4个大小相等的网格,
 * 
 * 2:组件从网格的左上角开始,按照从左到右,从上到下的顺序加入到网格中,而且每一个组件都会填满
 * 整个网格,改变窗体的大小,组件的大小也会随之改变
 * 
 * 3:网格布局管理器主要有2个构造方法
 * rows参数代表网格的行数
 * columns参数代表网格的列数,这2个参数只有一个可以为0代表一行或者一列可以排列任意多个组件
 * 参数horizGap指定网格之间的间距,指定网格之间的水平间距
 * 参数vertGap指定网格之间的垂直间距
 * @author biexiansheng
 *
 */
public class GridLayoutPosition extends JFrame{

    public GridLayoutPosition(){
   //定义一个构造方法
        Container container=getContentPane();//定义一个容器
        
        //设置窗体使用网格布局管理器,设置了7行3列的网格
        setLayout(new GridLayout(7,3,5,5));//先开始设置布局管理器
        for(int i=0;i<20;i++){
            container.add(new JButton("button"+i));
        }
        //设置容器的外部结构
        setTitle("这是一个网格布局管理器的窗体");
        setSize(300,300);//设置窗体的大小
        setVisible(true);//设置窗体的可见
        //设置窗体的关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        GridLayoutPosition gl=new GridLayoutPosition();
        //初始化对象时调用构造方法
    }

}

实例运行结果如下

JAVA学习Swing章节流布局管理器简单学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108916.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月16日 下午11:00
下一篇 2021年9月17日 上午6:00


相关推荐

  • mysql有多少个端口号_查看mysql端口号(mysql端口号是多少)

    mysql有多少个端口号_查看mysql端口号(mysql端口号是多少)查看 mysql 端口号 mysql 端口号是多少 2020 05 0722 11 45 共 10 个回答如何查看 mysql 的端口号 1 使用命令 showglobalva port 查看端口号 2 修改端口 编辑 etc my cnf 文件 早期版本有可能是 my conf 文件名 增加端口参数 并且设定端口 注意该端口未被使用 保存退出 总结 注意修改的端口不要被占用 而且要有规划 不要轻意的总

    2026年3月18日
    1
  • spring mvc 使用@notNull 注解验证请求参数

    spring mvc 使用@notNull 注解验证请求参数springmvc使用@notNull注解验证请求参数使用方式@NotNull@Min@valid验证生效进阶注解接口校验逻辑实现自定义注解使用处理请求时,有些参数是必传或者必须遵循某些规则的,如果针对每个请求都写一遍验证的话相当繁琐,而且代码维护起来也麻烦,正好框架将参数校验的功能抽象处理啊了,我们可以利用这个完成80%的校验场景使用方式使用起来很简单,只需要加上几…

    2022年6月8日
    98
  • LINQ左联接

    LINQ左联接varlist fromobjSubje AccountSubje GameChannelN

    2026年3月17日
    1
  • 常见的DoS攻击

    常见的DoS攻击拒绝服务攻击 DoS DenialofServ 使系统过于忙碌而不能执行有用的业务并且占尽关键系统资源 它是基于这样的思想 用数据包淹没本地系统 以打扰或严重阻止捆绑本地的服务响应外来合法的请求 甚至使本地系统崩溃 实现 Dos 攻击 常见的方式有 TCPSYN 泛洪 SYNFlood ping 泛洪 ping Flood UDP 泛洪 UDP Flood 分片炸弹 fragmentat

    2026年3月19日
    2
  • 线程安全Map比较

    线程安全Map比较线程安全 Map 比较 ConcurrentHa 以下简称 CHM 是 JUC 包中的一个类 Spring 的源码中有很多使用 CHM 的地方 之前已经翻译过一篇关于 ConcurrentHa 的博客 如何在 java 中使用 ConcurrentHa 里面介绍了 CHM 在 Java 中的实现 CHM 的一些重要特性和什么情况下应该使用 CHM 需要注意的是 上面

    2025年7月9日
    8
  • java数组和链表的区别_java中链表和数组的区别?

    java数组和链表的区别_java中链表和数组的区别?综述 数组是线性结构 可以直接索引 即要去第 i 个元素 a i 即可 链表也是线性结构 要取第 i 个元素 只需用指针往后遍历 i 次就可 貌似链表比数组还要麻烦些 而且效率低些 想到这些相同处中的一些细微的不同处 于是他们的真正不同处渐渐显现了 链表的效率为何比数组低些 先从两者的初始化开始 数组无需初始化 因为数组的元素在内存的栈区 系统自动申请空间 而链表的结点元素在内存的堆区 每个元素须手动申请空间

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号