Swing程序设计(6)边界布局,网格布局

文章目录


前言

    Swing程序中还有两种方式边界布局,网格布局供程序员使用。这两种布局方式更能体现出软件日常制作的排列布局格式。


一、布局介绍

        1.BorderLayout边界布局

                 语法:new BorderLayout

                 使用场景:c.setLayout( new BorderLayerout )

import java.awt.*;
import javax.swing.*;
//导入相关swing组件

public class Layout extends JFrame{
//继承JFrame窗体类

    public Layout(){
        //编写窗体布局方法
        setTitle("边界布局管理器");
        
        Container c = getContentPane();
        //获取容器

        c.setLayout(new BorderLayout());
        //设置布局方式为:边界布局 括号中实例化

        JButton w = new JButton("狼");
        JButton n = new JButton("狼");
        JButton e = new JButton("狼");
        JButton s = new JButton("狼");
        JButton m = new JButton("羊");
        //创建了五个组件对于五个位置
        
        c.add(w, BorderLayout.WEST);
        c.add(e, BorderLayout.EAST);
        c.add(n, BorderLayout.NORTH);
        c.add(s,BorderLayout.SOUTH);
        c.add(m,BorderLayout.CENTER);
        //向容器中添加组件并且设置好对应的布局位置。

        setBounds(200,200,800,800);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new Layout();
    }
}

        输出结果:

BorderLayout边界布局分为了上北,下南,左西,右东,中间,五个部分组成 

        注意:(1)添加组件时,需要指定区域,否则默认添加到CENTER区

                   (2)同一区域的组件会相互覆盖。

        2.GridLayout网格布局

                语法:new GridLayout(int 列,int 行)

                           new GridLayout(int 列,int 行,int 水平间距,int 垂直间距)

import java.awt.*;
import javax.swing.*;
//导入相关swing组件

public class Layout extends JFrame{
//继承JFrame窗体类

    public Layout(){
        //编写窗体布局方法
        setTitle("边界布局管理器");
        
        Container c = getContentPane();
        //获取容器

        c.setLayout(new GridLayout(4,4,2,2));
        //设置布局方式为:网格布局,设置网格的几行几列,水平竖直间距

        for(int i = 0 ;i<16;i++){
            add(new Button("按钮"+i));       
        }
        //添加组件填满网格
        
        setBounds(200,200,800,800);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new Layout();
    }
}

         输出结果:

3.GridBagLayout网格组布局 

         使用方法:

                GridBagLayout gridBag = new GridBagLayout();

                容器对象.setLayout(gridBag);

                GridBagConstraints 约束对象 = new java.awt.GridBagConstraints();//导入awt包

                容器对象.add(组件对象,约束对象);

        GridBagConstraints常用属性:

常用属性介绍
gridx , gridy组件所在的位置
gridwidth , gridheight组件所占的行数和列数
anchor组件所在的方位
fill组件的填充方式
insets组件与单元格边缘的最小距离
ipadx,ipady组件的首先大小
weightx,weighty一个单元格的最大宽高

        示例: 

import java.awt.*;
import javax.swing.*;
//导入相关swing组件

public class Layout extends JFrame{
//继承JFrame窗体类

    JFrame f = new JFrame();//主窗体
    Container c;//主容器
    void  createFrame(){
        //该方法用于创建窗体
        c = f.getContentPane();
        //方法中容器对象获得了f窗体的容器
        c.setLayout(new GridBagLayout());
        //设置网格组布局

        f.setSize(800,600);
        f.setLocationRelativeTo(null);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
        f.setVisible(true);

    }

    void init(){
        //设置网格组组件按钮1
        GridBagConstraints g1 = new GridBagConstraints();
        g1.gridx=1;
        g1.gridy=1;
        c.add(new JButton("按钮1"),g1);

        //设置网格组组件按钮2
        GridBagConstraints g2 = new GridBagConstraints();
        g2.gridx=2;
        g2.gridy=2;
        c.add(new JButton("按钮2"),g2);

        //设置网格组组件按钮3
        GridBagConstraints g3 = new GridBagConstraints();
        g1.gridx=3;
        g1.gridy=3;
        c.add(new JButton("按钮3"),g3);
    }


    public static void main(String[] args) {
        Layout a = new Layout();
        a.createFrame();
        a.init();
        a.f.setVisible(true);
    }
}

输出结果: 

网格组布局可以对于相关的组件可以起到约束作用 


总结

        以上就是的边界布局,网格布局,网格组布局三种swing布局方式的介绍,欢迎在评论区中留言,对于不足的地方以及困惑的地方。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java Swing边界布局(BorderLayout)将容器分为五个区域:北、南、东、西和中央。可以通过 `BorderLayout` 类的静态常量来指定每个区域的位置: - `BorderLayout.NORTH`:容器的北侧 - `BorderLayout.SOUTH`:容器的南侧 - `BorderLayout.EAST`:容器的东侧 - `BorderLayout.WEST`:容器的西侧 - `BorderLayout.CENTER`:容器的中央 使用 `BorderLayout` 布局非常简单,只需要创建一个 `BorderLayout` 布局管理器,并将其设置为容器的布局管理器即可。例如: ```java import java.awt.BorderLayout; import javax.swing.*; public class BorderLayoutExample extends JFrame { public BorderLayoutExample() { JPanel panel = new JPanel(new BorderLayout()); JButton northButton = new JButton("North"); JButton southButton = new JButton("South"); JButton eastButton = new JButton("East"); JButton westButton = new JButton("West"); JButton centerButton = new JButton("Center"); panel.add(northButton, BorderLayout.NORTH); panel.add(southButton, BorderLayout.SOUTH); panel.add(eastButton, BorderLayout.EAST); panel.add(westButton, BorderLayout.WEST); panel.add(centerButton, BorderLayout.CENTER); add(panel); setSize(300, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new BorderLayoutExample(); } } ``` 在上面的例子中,我们创建了一个 `JFrame` 窗口,并将其设置为 `BorderLayout` 布局。然后,我们创建了五个按钮,并使用 `add()` 方法将它们添加到面板中,并指定它们的位置。最后,我们将面板添加到窗口中。运行程序,您将看到五个按钮按照指定的位置布局在窗口中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值