java网格布局(GridLayout)应用 - 用户登录界面

版权声明:转载请注明出处 https://blog.csdn.net/doubleguy/article/details/83088574

我们先分析一下:

用BorderLayout显然是不合适的,账号和密码占据的位置差不多。我们观察一下,发现这三行宽度基本一致。

由此我们可以考虑用网格布局(GridLayout),分为3行1列,每行装一个JPanel。JPanel默认为FlowLayout

布局,由此可以把信息和框分别装进JPanel。

亮代码:

/**
 * @ Author_张斌
 * Layout演示
 *
 * 1.定义组件
 * 2.创建组件(构造函数)
 * 3.添加组件
 * 4.对窗体进行设置
 * 5.显示窗口
 */

import javax.swing.*;
import javax.xml.stream.Location;
import java.awt.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;

public class Tests extends JFrame{

    //定义组件
    JPanel jp1,jp2,jp3;
    JPasswordField jpw;
    JLabel jl1,jl2;
    JTextField jtf;
    JButton jb1,jb2;

    public static void main(String[] args){

        Tests tests = new Tests();

    }

    public Tests(){
        //创建组件
        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();
        jtf = new JTextField(10);
        jpw = new JPasswordField(10);
        jl1 = new JLabel("账号");
        jl2 = new JLabel("密码");
        jb1 = new JButton("登录");
        jb2 = new JButton("退出");

        //添加组件
        jp1.add(jl1);
        jp1.add(jtf);
        jp2.add(jl2);
        jp2.add(jpw);
        jp3.add(jb1);
        jp3.add(jb2);

        //添加JPanel
        this.add(jp1);
        this.add(jp2);
        this.add(jp3);

        //添加布局管理器
        this.setLayout(new GridLayout(3,1));

        //设置窗体
        this.setTitle("用户登录");
        this.setSize(300,150);
        this.setLocation(200,200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //禁止用户改变窗体大小
        this.setResizable(false);

        //显示窗体
        this.setVisible(true);
    }
}

猜你喜欢

转载自blog.csdn.net/doubleguy/article/details/83088574
今日推荐