布局管理器

原文:https://www.studytonight.com/java/layout-managers.php


在 Java 中,布局管理器用于按顺序排列组件。LayoutMananger 是一个实现布局管理器类的接口。

下面是一些用于布局管理器表示的类。


1. java.awt.BorderLayout

2. java.awt.FlowLayout

3.java.awt.GridLayout

4.java.awt.CardLayout

5.javax . swing . box layout-javax . swing . box 配置图


边框布局

当我们想要在五个区域中排列组件时,使用了边框布局。这五个地区可以是北部、南部、东部、西部和中部。边框布局中有 5 种类型的构造器。它们如下:

1.公共静态最终 int NORTH

2.南方公共静态决赛

3.公共静态最终 int EAST

4.西部公共静态决赛

5.公共静态最终国际中心

示例:

     import java.awt.*;  
import javax.swing.*;  

public class BorderDemo1 
{  
JFrame frame;  
BorderDemo1()
{  
        frame=new JFrame();  

        JButton box1=new JButton("**NORTH**");;  
        JButton box2=new JButton("**SOUTH**");;  
        JButton box3=new JButton("**EAST**");;  
        JButton box4=new JButton("**WEST**");;  
        JButton box5=new JButton("**CENTER**");;  

        frame.add(box1,BorderLayout.NORTH);  
        frame.add(box2,BorderLayout.SOUTH);  
        frame.add(box3,BorderLayout.EAST);  
        frame.add(box4,BorderLayout.WEST);  
        frame.add(box5,BorderLayout.CENTER);  

        frame.setSize(400,400);  
        frame.setVisible(true);  
}  
public static void main(String[] args) 
{  
    new BorderDemo1();  
}  
}

border-layoutborder-layout-example


网格布局

当我们想要在矩形网格中排列组件时,使用网格布局。

网格布局中有 3 种类型的构造器。它们如下:

1.网格布局()

2.网格布局(整数行,整数列)

3.网格布局(int 行,int 列,in gap,int vgap)

示例:

     import java.awt.*;  
import javax.swing.*;  

public class GridDemo1{  
JFrame frame1;  
GridDemo1(){
    frame1=new JFrame();  

JButton box1=new JButton("*1*");  
JButton box2=new JButton("*2*");  
JButton box3=new JButton("*3*");  
JButton box4=new JButton("*4*");  
JButton box5=new JButton("*5*");  
JButton box6=new JButton("*6*");  
JButton box7=new JButton("*7*");  
JButton box8=new JButton("*8*");  
JButton box9=new JButton("*9*");  

    frame1.add(box1);
    frame1.add(box2);
    frame1.add(box3);
    frame1.add(box4);
    frame1.add(box5);  
    frame1.add(box6);
    frame1.add(box7);
    frame1.add(box8);
    frame1.add(box9);  

    frame1.setLayout(new GridLayout(3,3));   
    frame1.setSize(500,500);  
    frame1.setVisible(true);  
}  
public static void main(String[] args) {  
    new GridDemo1();  
}  
}

grid-layoutgrid-layout


流程布局

当我们想要一个接一个地按顺序排列组件时,使用了“流布局”。

流布局中有 3 种类型的构造器。它们如下:

1.FlowLayout()

2.内部对齐(int align)

3.流布局(int align,in gap,intvgap)

示例:

     import java.awt.*;  
import javax.swing.*;  

public class FlowDemo1{  
JFrame frame1;  
FlowDemo1(){
    frame1=new JFrame();  

JButton box1=new JButton("1");  
JButton box2=new JButton("2");  
JButton box3=new JButton("3");  
JButton box4=new JButton("4");  
JButton box5=new JButton("5");  
JButton box6=new JButton("6"); 
JButton box7=new JButton("7"); 
JButton box8=new JButton("8"); 
JButton box9=new JButton("9"); 
JButton box10=new JButton("10");

    frame1.add(box1);
    frame1.add(box2);
    frame1.add(box3);
    frame1.add(box4);
    frame1.add(box5);  
    frame1.add(box6);
    frame1.add(box7);
    frame1.add(box8);
    frame1.add(box9);
    frame1.add(box10);
    frame1.setLayout(new FlowLayout(FlowLayout.LEFT));  

    frame1.setSize(400,400);  
    frame1.setVisible(true);  
}  
public static void main(String[] args) {  
    new FlowDemo1();  
}  
}

flow-layoutflow-layout


箱体布局

当我们想要垂直或水平排列组件时,使用方框布局。

盒子布局是盒子布局中唯一的构造器

示例:

     import java.awt.*;  
import javax.swing.*;  

public class BoxDemo1 extends Frame {  
    Button buttonBox[];  
    public BoxDemo1 () 
    {  
        buttonBox = new Button [2];  
        for (inti = 0;i<2;i++) 
        {  
            buttonBox[i] = new Button ("** Button " + (i + 1)+" **");  
            add (buttonBox[i]);  
        }  
    setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));  
    setSize(500,500);  
    setVisible(true);    
    }    

public static void main(String args[])
{  
    BoxDemo1 obj=new BoxDemo1();  
}  
}

box-layoutbox-layout

示例:

     import java.awt.*;  
import javax.swing.*;  

public class BoxDemo1 extends Frame {  
    Button buttonBox[];  
    public BoxDemo1 () 
    {  
        buttonBox = new Button [2];  
        for (inti = 0;i<2;i++) 
        {  
            buttonBox[i] = new Button ("** Button " + (i + 1)+" **");  
            add (buttonBox[i]);  
        }  
    setLayout (new BoxLayout (this, BoxLayout.X_AXIS));  
    setSize(500,500);  
    setVisible(true);    
    }    

public static void main(String args[])
{  
    BoxDemo1 obj=new BoxDemo1();  
}  
}

box-layout-2box-layout-3


卡片布局

当我们希望一次只看到一个组件时,使用“卡片布局”。

卡片布局中有两种类型的构造器。它们如下:

1.CardLayout()

2.卡片布局

示例:

     import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  
public class CardDemo1 extends JFrame implements ActionListener
{  
CardLayoutc_Card;  
JButton box1,box2,box3;  
Container d;  
    CardDemo1()
{  
        d=getContentPane();  
        c_Card=new CardLayout(40,30);  
        d.setLayout(c_Card);

         box1=new JButton("studytonight_1");  
         box2=new JButton("studytonight_2");  
        box3=new JButton("studytonight_3");  
        box1.addActionListener(this);  
        box2.addActionListener(this);  
        box3.addActionListener(this);  

        d.add("P",box1);
        d.add("Q",box2);
        d.add("R",box3); 
    }  
    public void actionPerformed(ActionEvent e) 
{  
        c_Card.next(d);  
    }  
    public static void main(String[] args) 
{  
        CardDemo1 obj =new CardDemo1();  
        obj.setSize(500,500);  
        obj.setVisible(true);  
        obj.setDefaultCloseOperation(EXIT_ON_CLOSE);  
    }  
}

card-layoutcard-layout