📜  Java AWT |网格布局类

📅  最后修改于: 2022-05-13 01:55:33.620000             🧑  作者: Mango

Java AWT |网格布局类

GridLayout 类表示在矩形网格中具有指定行数和列数的布局管理器。 GridLayout 容器被分成大小相等的矩形,每个矩形中放置一个组件。每个矩形单元格都具有相同的大小,因此它们包含一个填充整个单元格的组件。当用户改变或调整容器的大小时,每个矩形的大小都会相应改变。

类的构造函数:

  1. GridLayout():它创建一个网格布局,默认每个组件一列,在一行中。
  2. GridLayout(int rw, int cl):创建具有指定行数和列数的网格布局。
  3. GridLayout(int rw, int cl, int hgap, int vgap):它创建具有指定行数和列数的网格布局,具有水平和垂直间隙。

常用方法:

  • addLayoutComponent(String str, Component cmp):将指定名称的指定组件添加到布局中。
  • setColumns(int cl):将此布局中的列数设置为指定值。
  • setHgap(int hgap):将组件之间的水平间隙设置为指定值。
  • setRows(int rw):将此布局中的行数设置为指定值。
  • setVgap(int vgap):将组件之间的垂直间隙设置为指定值。
  • layoutContainer(Container pr):使用此布局对指定容器进行布局。
  • toString():返回此网格布局值的字符串表示形式。

下面的程序说明了 GridLayout 类:

  • 程序 1:在下面的程序中,我们在GridLayout中传递参数。我们创建了 4 个名为“ one ”、“ two ”、“ three ”、“ four ”的JLabel组件,并创建了 2 个名为“ buttonsave ”和“ buttonexit ”的JButton组件,并创建了 4 个名为“ tname ”、“ tcode ”、“ tdesig ”的Jtextfield组件", " tsalary " 和所有这些都通过 add() 方法添加到JFrame中。我们将使用setVisible()setSize()方法设置框架的可见性和大小。使用setLayout()方法设置布局。
    // Java program to illustrate the GridLayout
    import javax.swing.*;
    import java.awt.*;
      
    // class GridLayout extends JFrame
    public class GridLayoutDemo extends JFrame {
      
    GridLayoutDemo() {
      
        // Creating Object P1 of JPanel class
        JPanel p1 = new JPanel();
      
        // set the layout
        p1.setLayout(new GridLayout(4, 2));
      
        // Creating Object of "FlowLayout" class
        FlowLayout layout = new FlowLayout();
      
        // Creating Object P2 of JPanel class
        JPanel p2 = new JPanel();
      
        // set the layout
        p2.setLayout(layout);
      
        // Declaration of objects of JLabel class.
        JLabel one, two, three, four;
      
        // Declaration of objects of JTextField class.
        JTextField tname, tsalary, tcode, tdesig;
      
        // Declaration of objects of JButton class.
        JButton buttonSave, buttonExit;
      
        // Initialization of object 
        // "one" of JLabel class.
        one = new JLabel("NAME");
      
        // Initialization of object 
        // "tname" of JTextField class.
        tname = new JTextField(20);
      
        // Initialization of object
        // "two" of JLabel class.
        two = new JLabel("CODE");
      
        // Initialization of object 
        // "tcode" of JTextField class.
        tcode = new JTextField(20);
      
        // Initialization of object
        // "three" of JLabel class.
        three = new JLabel("DESIGNATION");
      
        // Initialization of object 
        // "tdesig" of JTextField class.
        tdesig = new JTextField(20);
      
        // Initialization of object
        // "four" of JLabel class.
        four = new JLabel("SALARY");
      
        // Initialization of object 
        // "tsalary" of JTextField class.
        tsalary = new JTextField(20);
      
        // Initialization of object
        // "buttonsave" of JButton class.
        buttonSave = new JButton("SAVE");
      
        // Initialization of object
        // "buttonexit" of JButton class.
        buttonExit = new JButton("EXIT");
      
        // Adding Jlabel "one" on JFrame.
        p1.add(one);
      
        // Adding JTextField "tname" on JFrame.
        p1.add(tname);
      
        // Adding Jlabel "two" on JFrame.
        p1.add(two);
      
        // Adding JTextField "tcode" on JFrame.
        p1.add(tcode);
      
        // Adding Jlabel "three" on JFrame.
        p1.add(three);
      
        // Adding JTextField "tdesig" on JFrame.
        p1.add(tdesig);
      
        // Adding Jlabel "four" on JFrame.
        p1.add(four);
      
        // Adding JTextField "tsalary" on JFrame.
        p1.add(tsalary);
      
        // Adding JButton "buttonsave" on JFrame.
        p2.add(buttonSave);
      
        // Adding JButton "buttonexit" on JFrame.
        p2.add(buttonExit);
      
        // add the p1 object which 
        // refer to the Jpanel
        add(p1, "North");
      
        // add the p2 object which
        // refer to the Jpanel
        add(p2, "South");
      
        // Function to set visible
        // status of JFrame.
        setVisible(true);
      
        // this Keyword refers to current
        // object. Function to set size of JFrame.
        this.setSize(400, 180);
    }
      
        // Main Method
        public static void main(String args[])
        {
      
            // calling the constructor
            new GridLayoutDemo();
        }
    }
    

    输出:

  • 程序 2:在下面的程序中,我们在GridLayout中传递参数。我们创建了 5 个名为“ btn1 ”、“ btn2 ”、“ btn3 ”、“ btn4 ”、“ btn5 ”的JButton组件,然后通过add()方法将它们添加到JFrame 。我们将使用setvisible()setsize()方法设置框架的可见性和大小。使用setLayout()方法设置布局。
    // Java program to illustrate the GridLayout
    import java.awt.*;
    import javax.swing.*;
      
    // create a class griddemo
    public class Griddemo {
      
    // Main Method
    public static void main(String[] args)
    {
      
        // Creating Object of JFrame class 
        // with new name frame
        JFrame frame = new JFrame("GridLayout Demo");
      
        // Initialization of object 
        // "btn1" of JButton class.
        JButton btn1 = new JButton("Button 1");
      
        // Initialization of object 
        // "btn2" of JButton class.
        JButton btn2 = new JButton("Button 2");
      
        // Initialization of object 
        // "btn3" of JButton class.
        JButton btn3 = new JButton("Button 3");
      
        // Initialization of object
        // "btn4" of JButton class.
        JButton btn4 = new JButton("Button 4");
      
        // Initialization of object 
        // "btn5" of JButton class.
        JButton btn5 = new JButton("Button 5");
      
        // Creating Object Panel of JPanel class
        // create grid layout with 3 rows, 
        // 2 columns with horizontal and 
        // vertical gap set to 10
        JPanel panel = new JPanel(new GridLayout(3, 2, 10, 10));
      
        // Adding JButton "btn1" on JPanel.
        panel.add(btn1);
      
        // Adding JButton "btn2" on JPanel.
        panel.add(btn2);
      
        // Adding JButton "btn3" on JPanel.
        panel.add(btn3);
      
        // Adding JButton "btn4" on JPanel.
        panel.add(btn4);
      
        // Adding JButton "btn5" on JPanel.
        panel.add(btn5);
      
        // Function to close the operation of JFrame.
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
        // Function to set size of JFrame.
        frame.setSize(300, 150);
      
        // Function to get the content of JFrame.
        frame.getContentPane().add(panel);
      
        // Function to set visible status of JFrame.
        frame.setVisible(true);
    }
    }
    

    输出:

注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。

参考: https: Java/awt/GridLayout.html