最新消息:

网红IT:用Java的swt包撸一个登录窗口

开发相关 admin 73浏览

大家都知道java并不适合开发桌面程序,小编也不例外。今年年初小编准备开发一个桌面应用给父母记账用,本来想用java 的,但是后来发现java写的话实在是麻烦,碰巧给一个朋友说了这个事情,朋友推荐我用 electron开发,试了一下真心不错。话又多了,今天是来说java 的,扯其他方面了。。。

首先撸一个登录窗口的话我们首先打开eclipse创建一个java project,这里我的名字是demo_login,接下来我们应该想一下登录窗口是什么样子的呢?一个窗口,里面两个标签、两个文本框、两个按钮,所以我们应该至少准备以下组件:

  • JLabel*2
  • JButton*2
  • JTextField*1
  • JPasswordField*1

首先新建一个主类main.java,再建一个login.java继承jframe,代码如下:

,再建一个login.class继承jframe,代码如下:

main.java

package demo_login;

public class main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

login.java

package demo_login;

import javax.swing.JFrame;

public class login extends JFrame {

}

好了,我们开始编写登录界面,大概就是下面这个样子:

自己的截图,请勿加水印

可以看到界面是网格布局(GridLayout)

所以我们还需要三个JPanel,账号标签与文本框为一个,
密码标签与文本框为一个,两个按钮为一个

所以接下来要在login.java里面写入如下带代码:

package demo_login;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class login extends JFrame {
	
    // 账号密码标签
    JLabel mJL_id,mJL_pass;
    // 账号密码的文本框
    JTextField mText_id;
    JPasswordField mText_pass;
    // 登录退出按钮
    JButton mBtn_login,mBtn_exit;
    // 三个容器,放入网格布局中
    JPanel mJP_id,mJP_pass,mJP_btn;
	
}

然后login 的构造方法内开始布局

我们要实例化以上的所有对象,还要创建一个GridLayout 的匿名对象

实例化对象之后需要把账号标签和账号文本框(密码和按钮同理)加入到对应的Jpanel里面,jframe添加这三个jpanel后设置jframe为网格布局:this.setLayout(new GridLayout(3,1));

最后要做的就是设置jframe 的长和高以及名字,不要忘记以下几点:

  • 需要设置显示才会显示出来,默认不显示
  • 需要右上方关闭按钮的方式
  • 建议设置不可改变窗口大小

login.java代码整理如下:

package demo_login;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class login extends JFrame {
	
    // 账号密码标签
    JLabel mJL_id,mJL_pass;
    // 账号密码的文本框
    JTextField mText_id;
    JPasswordField mText_pass;
    // 登录退出按钮
    JButton mBtn_login,mBtn_exit;
    // 三个容器,放入网格布局中
    JPanel mJP_id,mJP_pass,mJP_btn;
    
    
    public login(){
    	mJP_id = new JPanel();
    	mJP_pass = new JPanel();
    	mJP_btn = new JPanel();
    	mText_id = new JTextField(10);
    	mText_pass = new JPasswordField(10);
        mJL_id = new JLabel("账号");
        mJL_pass = new JLabel("密码");
        mBtn_login = new JButton("登录");
        mBtn_exit = new JButton("退出");
 
        mJP_id.add(mJL_id);
        mJP_id.add(mText_id);
        mJP_pass.add(mJL_pass);
        mJP_pass.add(mText_pass);
        mJP_btn.add(mBtn_login);
        mJP_btn.add(mBtn_exit);
 
        this.add(mJP_id);
        this.add(mJP_pass);
        this.add(mJP_btn);
 
        this.setLayout(new GridLayout(3,1));
 
        this.setTitle("登录界面的演示");
        this.setSize(300,150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
    }
}

main.java代码整理如下:

package demo_login;

public class main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new login();
	}

}

转载请注明:森林火 » 网红IT:用Java的swt包撸一个登录窗口