资讯专栏INFORMATION COLUMN

Java窗口(JFrame)从零开始(4)——流布局+边界布局+网格布局

liangzai_cool / 1564人阅读

摘要:代码演示设置容器为边界布局管理器循环添加按钮,并设置按钮布局网格布局类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。构造方法摘要创建具有默认值的网格布局,即每个组件占据一行一列。创建具有指定行数和列数的网格布局。

流布局:
FlowLayout构造方法:
FlowLayout()

      构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位。 

FlowLayout(int align)

      构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位。 

FlowLayout(int align, int hgap, int vgap)

      创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。 

注意:

      align=0:表示每一行组件将按照左对齐排列
      align=1:表示每一行组件将按照居中对齐排列
      align=2:表示每一行组件将按照右对齐排列

代码:

package jframe;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.*;

public class jframe extends JFrame{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public jframe(){
        new JFrame("title");
        Container con = getContentPane();
        setLayout(new FlowLayout(0,10,10));            //按照左对齐排列垂直水平间隔为10
        for (int i=0;i<10;i++){
            add(new JButton("Button"+i));              //添加组件
        }
        this.setVisible(true);                         //设置窗体可见
        this.setSize(300, 300);                        //设置窗体大小
    }
    public static void main(String[] args) {
        jframe a = new jframe();
    }
}    

如果改变窗体的大小其中组件的位置也会跟着改变

边界布局:
这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一。

代码演示:

package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.*;

public class jframe extends JFrame{
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    String border [] = {BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.WEST,
            BorderLayout.EAST,BorderLayout.CENTER};
    
    String borderName [] = {"North","South","West","East","Center"};
    
    public jframe(){
        this.setTitle("test");
        Container con = this.getContentPane();
        this.setLayout(new BorderLayout());                        //设置容器为边界布局管理器
        for (int i=0;i<5;i++){
            con.add(border[i],new JButton(borderName[i]));        ///循环添加按钮,并设置按钮布局
        }
        this.setVisible(true);
        this.setBounds(50, 50, 500, 300);
    }
    public static void main(String[] args) {
        new jframe();
    }
}

网格布局
GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。

构造方法摘要
GridLayout()

      创建具有默认值的网格布局,即每个组件占据一行一列。 

GridLayout(int rows, int cols)

      创建具有指定行数和列数的网格布局。 

GridLayout(int rows, int cols, int hgap, int vgap)

      创建具有指定行数和列数的网格布局(hgap指定网格之间的水平间距,vgap指定网格之间垂直间距)。 

代码演示:

package jframe;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.*;

public class jframe extends JFrame{
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public jframe(){
        this.setTitle("test");
        Container con = this.getContentPane();
        this.setLayout(new GridLayout(7,3,5,5));        //设置7行3列垂直水平间隔为5
        for (int i=0;i<20;i++){
            con.add(new JButton("Button"+i));            //20个按钮
        }
        this.setVisible(true);
        this.setBounds(50, 50, 300, 500);
    }
    public static void main(String[] args) {
        new jframe();
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69989.html

相关文章

  • Swing布管理器

    摘要:布局管理器也是通过构造器来创建的。流布局管理器的对齐方式如下所示。方法和方法分别获取和设置流布局管理器中控件和控件之间的水平间距。 流布局(FlowLayout)默认的JApplet,JPanel,JScrollPane 流布局是相对比较简单的一种布局管理器,也是最常用的布局管理器。在流布局中放置控件时,将按照控件的添加顺序,依次将控件从左到右进行摆放,并且在一行的最后会进行自动换...

    王笑朝 评论0 收藏0
  • 初学 Swing 组件

    摘要:包括了图形用户界面器件如文本框,按钮,分隔窗格和表。按照指定布局限制添加组件。移除指定位置的组件。通常文本框用于接收用户信息或其他文本信息的输入。因此,组件也称为密码文本框。创建一个具有出事文本信息以及制定列数的文本框。 Swing 是一个为Java设计的GUI工具包。 Swing是JAVA基础类的一部分。 Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。 S...

    codeGoogle 评论0 收藏0
  • Java窗口JFrame从零开始(3)——绝对布

    摘要:中的绝对布局取消布局管理器实例化一个按钮实例化一个按钮设置位置与大小设置位置与大小显示窗体 Swing中的绝对布局 package jframe;import java.awt.Button;import java.awt.Container;import javax.swing.*; public class jframe extends JFrame{ /** * */ pr...

    cangck_X 评论0 收藏0
  • 前端入门4-CSS属性样式表

    摘要:正文属性样式表正文属性样式表了解了具体的各种工作原理使用方式选择器规则层叠算法等之后,那么该来学习的也就是都支持哪些属性样式表了。 本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: 《HTML5权威指南》 《JavaScript权威指南》 MDN web docs Github:smyhvae/web 作为一个前端小白,入...

    hss01248 评论0 收藏0
  • 容易忽略的七个CSS知识点

    摘要:样式声明通过一个称为级联的过程来解释和决定。级联级联可能是中最容易被弄错的属性之一。因此很容易认为元素的视觉边界等于其宽度,但情况并非如此。 如果你在日常工作中使用CSS,那么你的主要目标很可能集中在使事情看起来是正确的。最终得到的正确结果远比如何实现更重要。这意味着相比正确的语法和视觉效果我们更少关注CSS的实现原理。 你可能还没有意识到,但CSS的视觉效果通常是操纵隐藏属性的间接结...

    chanthuang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<