Java AWT |网格布局类
GridLayout 类表示在矩形网格中具有指定行数和列数的布局管理器。 GridLayout 容器被分成大小相等的矩形,每个矩形中放置一个组件。每个矩形单元格都具有相同的大小,因此它们包含一个填充整个单元格的组件。当用户改变或调整容器的大小时,每个矩形的大小都会相应改变。
类的构造函数:
- GridLayout():它创建一个网格布局,默认每个组件一列,在一行中。
- GridLayout(int rw, int cl):创建具有指定行数和列数的网格布局。
- 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