精华内容
下载资源
问答
  • java swing 网格布局
    2021-03-09 17:29:50

    public void frame()

    {

    this.frame = new JFrame("用户注册");

    //窗体基本属性

    this.frame.setSize(600, 400);

    this.frame.setLocationRelativeTo(null);

    this.frame.setVisible(true);

    this.frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    //设置主面板,相当于外层div

    JPanel jp = new JPanel(new BorderLayout());

    //东西南北中,面板

    JPanel jp1 = new JPanel(new FlowLayout());

    JPanel jp2 = new JPanel(new FlowLayout());

    JPanel jp3 = new JPanel(new GridLayout(10,2));

    JPanel jp4 = new JPanel(new FlowLayout());

    JPanel jp5 = new JPanel(new FlowLayout());

    //加入主面板

    jp.add(BorderLayout.NORTH,jp1);

    jp.add(BorderLayout.SOUTH,jp2);

    jp.add(BorderLayout.CENTER,jp3);

    jp.add(BorderLayout.EAST,jp4);

    jp.add(BorderLayout.WEST,jp5);

    //标题

    JLabel jl1 = new JLabel("用户注册",SwingConstants.CENTER);

    jp1.add(jl1);

    //中间面板

    JButton jb2= new JButton("Btn");

    JTextField jt = new JTextField("usrname");

    JButton jb1 = new JButton("abc");

    jp3.add(jt);

    jp3.add(jb1);

    jp3.add(jb2);

    this.container = this.frame.getContentPane();

    this.container.setBackground(Color.white);

    this.container.add(jp);

    }

    更多相关内容
  • 主要介绍了JavaSwing GridLayout 网格布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java Swing面板布局之网格布局GridLayout

    千次阅读 2022-01-22 14:49:02
    GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。 使容器中的各组件呈M行×N列的网格状分布。 网格每列...

    一、简介

    GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。

    • 使容器中的各组件呈M行×N列的网格状分布。
    • 网格每列宽度相同,等于容器的宽度除以网格的列数。
    • 网格每行高度相同,等于容器的高度除以网格的行数。
    • 各组件的排列方式为:从上到下,从左到右。
    • 组件放入容器的次序决定了它在容器中的位置。
    • 容器大小改变时,组件的相对位置不变,大小会改变。
    • 设置网格布局行数和列数时,行数或者列数可以有一个为零。若rows为0,cols为3,则列数固定为3,行数不限,每行只能放3个控件或容器。若cols为0,rows为3,则行数固定为3,列数不限,且每行必定有控件,若组件个数不能整除行数,则除去最后一行外的所有行组件个数为:Math.ceil(组件个数/rows)。Math.ceil(double x):传回不小于x的最小整数值。比如行数为3,组件数为13个,则Math.ceil(13/3)=5,即第一行,第二行组件数各为5个,剩下的组件放在最后一行。
    • 若组件数超过网格设定的个数,则布局管理器会自动增加网格个数,原则是保持行数不变。

    二、构造函数

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

    GridLayout(int rows, int cols):创建具有指定行数和列数的网格布局。Rows为行数,cols为列数。

    GridLayout(int rows, int cols, int hgap, int vgap):创建具有指定行数、列数以及组件水平、纵向一定间距的网格布局。

    三、成员变量及函数

    getColumns() :获取此布局中的列数。

    setColumns(int cols) :将此布局中的列数设置为指定值。

    getRows() :获取此布局中的行数。

    setRows(int rows):将此布局中的行数设置为指定值。

    getHgap():获取组件之间的水平间距。

    setHgap(int hgap):将组件之间的水平间距设置为指定值。

    getVgap() :获取组件之间的垂直间距。

    setVgap(int vgap) :将组件之间的垂直间距设置为指定值。

    removeLayoutComponent(Component comp) :从布局移除指定组件。

    四、举例

    import java.awt.GridLayout;

    import javax.swing.*;

    public class TestGridLayout01 extends JFrame{

        public static void main(String[] args) {

           new TestGridLayout01();

        }

        private static final long serialVersionUID = 1L;

        public TestGridLayout01(){

           initFrame();

        }

        private void initFrame(){

           this.setTitle("网格布局测试1");

           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           addComponents();

           this.setSize(600, 400);

           this.setLocationRelativeTo(null);

           this.setVisible(true);

        }

        private void addComponents(){

           GridLayout gridLayout = new GridLayout(2, 1);

           this.setLayout(gridLayout);

           JPanel topP = new JPanel(new GridLayout(4, 4));

           this.add(topP);

           for(int i=1; i<=4; i++){

               for(int j=1; j<=4; j++){

                  JButton btn = new JButton("按钮"+i+j);

                  topP.add(btn);

               }

           }

           JPanel btoP = new JPanel(new GridLayout(4, 4, 6, 6));

           this.add(btoP);

           for(int i=1; i<=4; i++){

               for(int j=1; j<=4; j++){

                  JButton btn = new JButton("按钮"+i+j);

                  btoP.add(btn);

               }

           }

        }

    }

    展开全文
  • GridBagLayout类是一个灵活的布局管理器,GridBagLayout类的对象维持一个动态的矩形单元网格,然后我们可以把组件放进一个或多个矩形单元网格,组件大就多放几个,组件小就少放几个。 而每个组件,要占几个网格单元...

    一、简介

    GridBagLayout类是一个灵活的布局管理器,GridBagLayout类的对象维持一个动态的矩形单元网格,然后我们可以把组件放进一个或多个矩形单元网格,组件大就多放几个,组件小就少放几个。

    而每个组件,要占几个网格单元,每个组件要占领的位置在哪等等,都是要用GridBagConstraints类的对象来设置。

    可以完成复杂的布局,而且IDE对它有足够的支持,是一个很强大的Layout。不过它过于复杂,在此布局中,组件大小不必相同。可以采用以下代码容器获得一个GridBagLayout:

    GridBagLayout gb=new GridBagLayout();

    ContainerName.setLayout(gb);

    要使用网格包布局,还必须有其一个辅助类,GridBagContraints。它包含GridBagLayout类用来定位及调整组件大小所需要的全部信息。使用步骤如下:

    1) 创建网格包布局的一个实例,并将其定义为当前容器的布局管理器

    2) 创建GridBagContraints的一个实例

    3) 为组件设置约束

    4) 通过方法统治布局管理器有关组件及其约束等信息

    5) 将组件添加到容器

    6) 对各个将被显示的组件重复以上步骤

    GridBagContraints类的成员变量列表如下:

    1、gridx,gridy

        指定组件放在哪个单元中。其值应该设为常数CridBagConstraints.RELATIVE。然后按标准顺序将组件加入网格包布局。从左到右,从上到下。

    2、gridwidth,gridheight

        指定组件将占用几行几列

    s.gridwidth=1;//该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个

    3、weightx,weighty

        指定在一个GridBagLayout中应如何分配空间。缺省为0。

    s.weightx = 0;//该方法设置组件水平的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间

    s.weighty=0;//该方法设置组件垂直的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间

    4、ipadx,ipady

        指定组件的最小宽度和高度。可确保组件不会过分收缩。

    5、insets

        组件和显示区、外部填充

    6、ipadx,ipady

        组件和显示区、内部填充

    7、fill

        指定在单元大于组件的情况下,组件如何填充此单元,缺省为组件大小不变,以下为静态数据成员列表,它们是fill变量的值。

        GridBagConstraints.NONE     不改变组件大小

        GridBagConstraints.HORIZONTAL   增加组件宽度,使其水平填充显示区域

        GridBagConstraints.VERTICAL     增加组件高度,使其垂直填充显示区域

        GridBagConstraints.BOTH         使组件填充整个显示区域

    8、anchor

        如果不打算填充可以通过anchor指定将组件放置在单元中的位置,缺省为将其放在单元的中部。可使用以下静态成员:

        GridBagConstraints.CENTER

        GridBagConstraints.NORTH

        GridBagConstraints.EAST

        GridBagConstraints.WEST

        GridBagConstraints.SOUTH

        GridBagConstraints.NORTHEAST

        GridBagConstraints.SOUTHEAST

        GridBagConstraints.NORTHWEST

        GridBagConstraints.SOUTHWEST

    使用setConstraints()方法可以设置各组件约束。

    GridBagLayout是是在GridLayout的基础上发展起来的,是五种布局策略中使用最复杂,功能最强大的一种,它是在GridLayout的基础上发展起来的。因为GridBagLayout中每个网格都相同大小并且强制组件与网格大小相同,使得容器中的每个组件也都是相同的大小,显得很不自然,而且组件假如容器中必须按照固定的行列顺序,不够灵活。在GridBagLayout中,可以为每个组件指定其包含的网格个数,组件可以保留原来的大小,可以以任意顺序随意地加入容器的任意位置,从而实现真正自由地安排容器中每个组件的大小和位置。

    二、类及方法

    GridBagLayout gridBag = new GridBagLayout();

    GridBagConstraints c = null;

    JPanel panel = new JPanel(gridBag);

    c = new GridBagConstraints();

    gridBag.addLayoutComponent(btn01, c);

    GridBagConstraints属性:

    变量名

    有效值

    应用范围

    定义

    anchor

    CENTER

    EAST

    NORTH

    NORTHEAST

    SOUTH

    SOUTHWEST

    WEST

    组件

    组件在网格中排放的位置

    fill

    BOTH

    HORIZONTAL

    VERTICAL

    NONE

    组件

    组件填充网格的方式

    gridx,gridy

    RELATIVE

    整数X,Y值

    组件和显示区

    组件的左上角网格的位置

    gridheight

    gridwidth

    1

    RELATIVE

    REMAINDER

    宽,高度整数值

    显示区

    网格单元中组件显示区所占的高度和宽度

    Insets

    (0,0,0,0)

    组件和显示区

    外部填充

    ipadx,ipady

    0

    组件和显示区

    内部填充

    三、举例

    import java.awt.*;

    import javax.swing.*;

    public class TestGridBagM2 {

        public static void main(String[] args) {

            JFrame jf = new JFrame("测试窗口");

                jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

                GridBagLayout gridBag = new GridBagLayout();    // 布局管理器

                GridBagConstraints c = null;                    // 约束

                JPanel panel = new JPanel(gridBag);

                JButton btn01 = new JButton("Button01");

                //btn02btn03GridBagLayout放到JPanel

                JButton btn02 = new JButton("Button02");

                JButton btn03 = new JButton("Button03");

                GridBagLayout igridBag = new GridBagLayout();    // 布局管理器

                GridBagConstraints ic = null;                    // 约束

                JPanel iPanel = new JPanel(igridBag);

                ic = new GridBagConstraints();

                ic.insets = new Insets(0, 10, 0, 10);

                igridBag.addLayoutComponent(btn02, ic);

                ic = new GridBagConstraints();

                ic.insets = new Insets(0, 10, 0, 10);

                igridBag.addLayoutComponent(btn02, ic);

                iPanel.add(btn02);

                iPanel.add(btn03);

               

                JTextField txt02 = new JTextField("TextField");

               

                JComboBox<String> cbx01 = new JComboBox<String>(new String[]{"选项A", "选项B", "选项C"});

                JComboBox<String> cbx02 = new JComboBox<String>(new String[]{"选项A", "选项B", "选项C"});

               

                /* 添加 组件 约束 布局管理器 */

                //btn01

                c = new GridBagConstraints();

                c.anchor = GridBagConstraints.WEST;

                c.insets = new Insets(2, 10, 2, 10);

               c.gridx = 0;

               c.gridy = 0;

                gridBag.addLayoutComponent(btn01, c);

                //btn02

                c = new GridBagConstraints();

                c.anchor = GridBagConstraints.EAST;

                c.insets = new Insets(2, 10, 2, 10);

               c.gridwidth = GridBagConstraints.REMAINDER;

                gridBag.addLayoutComponent(iPanel, c);

               

                //txt

                c = new GridBagConstraints();

                c.fill = GridBagConstraints.BOTH;

                c.insets = new Insets(2, 10, 2, 10);

               c.weightx = 1;

               c.weighty = 1;

               c.gridwidth = GridBagConstraints.REMAINDER;

                gridBag.addLayoutComponent(txt02, c);

               

                //cbx01

                c = new GridBagConstraints();

                c.anchor = GridBagConstraints.WEST;

                c.insets = new Insets(2, 10, 2, 10);

                gridBag.addLayoutComponent(cbx01, c);

                //cbx02

                c = new GridBagConstraints();

                c.anchor = GridBagConstraints.EAST;

                c.insets = new Insets(2, 10, 2, 10);

                c.gridwidth = GridBagConstraints.REMAINDER;

                gridBag.addLayoutComponent(cbx02, c);

                /* 添加 组件 内容面板 */

                panel.add(btn01);

                panel.add(iPanel);

                panel.add(txt02);

                panel.add(cbx01);

                panel.add(cbx02);

                jf.setContentPane(panel);

                jf.setSize(600, 400);

                jf.setLocationRelativeTo(null);

                jf.setVisible(true);

        }

    }

     

    展开全文
  • java swing 网格布局

    千次阅读 2017-02-27 08:32:19
    “` package com.js; import java.awt.*; import javax.swing.*; public class Java_3_swing_7_GridLayout extends JFrame{ public Java_3_swing_7_GridLayout(){ Container c = getContentPane();

    “`
    package com.js;
    import java.awt.*;
    import javax.swing.*;
    public class Java_3_swing_7_GridLayout extends JFrame{
    public Java_3_swing_7_GridLayout(){
    Container c = getContentPane();
    // 设置容器使用网格布局管理器,设置7行3列的网格
    setLayout(new GridLayout(7,3,5,5));
    for(int i = 0; i< 20; i++){
    c.add(new JButton(“button”+i));
    }
    setSize(300,300);
    setTitle(“这是一个使用网格布局管理器的窗体”);
    setVisible(true);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        new Java_3_swing_7_GridLayout();
    }
    

    }

    “`这里写图片描述

    展开全文
  • 主要介绍了Java Swing GridBagLayout网格布局的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 我正在为一个亲戚制作一个简单的小摆动应用程序,但是我在实现它的动画时遇到了麻烦……这是我的布局的描述:我有一个主窗口(通过实例化,打包和显示JFrame创建).我告诉主窗口的内容面板使用GridBagLayout作为其布局....
  • 这篇博文仅仅简单介绍了三种常见的布局管理器,都是一些简单应用;一、 边界布局管理器...import java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame;/*Date: 2017年1月21日 Time: ...
  • Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的相关内容,今天就来讲讲Java Swing计算器界面的...
  • 网格布局 网格袋布局 箱式布局 分组布局 卡片布局 边界布局 绝对布局 效果展示 功能实现 我们今天将用到 网格袋 布局来实现以上功能。   由此可见我们分析以上效果图有8个控件 分别是:
  • javaSwing布局

    2021-02-28 21:27:12
    网格布局GridLayout5.网格包组件GridBagLayout5-1填充方式5-2方位填充5-3insets属性5-4放大缩小 布局怎么设置通过 获取container 然后container.setLoot(布局样式) 1.绝对布局也叫null布局 2.流布局 ...
  • Java Swing布局

    2020-09-28 22:58:53
    GridLayout 网格布局, 每个组件都是网格中的一员, 从左往右, 从上往下的顺序排列, 注意: 不可跨越多个网格, 即一个组件固定只能是一个网格 GridBagLayout 网格包布局, 网格布局的升级版, 允许组件跨越列或者行合并...
  • java swing 布局所需组件formlayout所需jar包 jgoodies-common-1.6.0 ...如果是流式布局、网格布局、网格包布局都非常麻烦。 这个资源非常稀缺,希望能帮助到大家,本人也是花两天时间整理处理的。
  • Java 网格布局

    2021-02-12 13:38:35
    /** 网络布局* */package com.swing;import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;class gridlayout extends JFrame{int size=6;private JButton jbtn[]=new JButton[size];...
  • JButtonadd=newJButton("添加... } } } } 以上是我代码中的一段,我在网格布局中添加一个Item和一个按钮。我希望Edit中可以点击一次鼠标就添加一个Item,但是我点击一次按钮网格布局竟然变成了两列,这是为什么? 展开
  • GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。 以行数和总数优先: 通过构造方法或 setRows 和 set...
  • java 网格布局

    2021-04-17 07:13:24
    package com.xinhua.gridbaglayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JButton; import javax.swing.JFrame; public c...
  • 主要介绍了JAVA swing布局管理器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java Swing开发容器与布局

    多人点赞 2021-11-01 19:31:31
    Java Swing开发容器与布局1 容器1.1 JFrame(窗口框架)顶级容器JFrame顶级容器案例1.1 JPanel中间容器JPanel中间容器案例2 布局2.1 FlowLayout流布局2.2 BorderLayout边界布局BorderLayout边界布局案例2.3 ...
  • 本文通过代码示例给大家详细讲解了javaSwing五种常见的布局方式,以及相关注意知识点,有兴趣的朋友参考学习下。
  • Swing网格布局(1)

    2020-07-19 15:00:09
    jf.setTitle(“网格布局”);//标题 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭退出JVM jf.setLocationRelativeTo(null);//基于当前系统居中 //创建3*3布局 /** * 参数 行 列
  • GridBagLayout,网格布局管理器。它不要求组件的大小相同便可以将组件垂直、水平或沿它们的基线对齐。每个 GridBagLayout 对象维持一个动态的矩形单元格(动态计算出单个单元格的大小),每个组件占用一个或多个的...
  • 出于学习目的,我正在尝试使用包含编号按钮的网格创建一个简单的GUI.问题是,按钮的文本不会根据按钮的大小进行调整.让我先向您展示代码,这样您就会明白我的意思:import javax.swing.*;import java.awt.GridLayout;...
  • 网格布局Java较为复杂的布局,虽然这又背于Java简单的初衷。网格布局十分优雅,组件可以随着窗口的调整自动放大或缩小。 要有效地使用网格布局,必须自定义GridBagConstraints与其组件关联的一个或多个对象...
  • 网格布局类似html中的表格,它将面板分成一排排,一列列的小格,将控件添加到这些小格中。GridBagConstraints指定了要添加控件的属性。 Ø  gridx , gridy 指定添加到那个小格中。 Ø  gridwidth , ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,736
精华内容 2,694
关键字:

java swing 网格布局