Java实现简单的GUI登录和注册界面

先看效果图:

登陆界面:
在这里插入图片描述
注册界面:
在这里插入图片描述

实现代码如下:

一、登陆界面:
package cn.bms.view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.MatteBorder;

import cn.bms.tools.GUITools;

/*
 * 登录窗口
 */
@SuppressWarnings("serial")
public class AdminLogin extends JFrame {
	private JPanel contentPanel = new JPanel();
	// Label标签存放背景图片
	private JLabel label;
	// 设置按钮组件
	private JButton login = new JButton("登录"), register = new JButton("注册");

	private JLabel jlb1 = new JLabel("用户名:"), jlb2 = new JLabel("密码:"), jlbtitle = new JLabel("登录界面");
	// 设置文本框组件
	private JTextField admin = new JTextField(), password = new JTextField();

	public AdminLogin() {
		this.init();
		this.addListener();
	}

	private void init() {
		this.setTitle("管理员登陆界面");
		this.setSize(500, 350);
		GUITools.center(this);
		ImageIcon image1 = new ImageIcon("837878.jpg"); // 界面背景图片
		JLabel backLabel = new JLabel();
		backLabel.setIcon(image1);
		label = new JLabel(image1);
		label.setBounds(0, 0, 1000, 400);
		// 在LayeredPane最底层上添加两个带图片的标签,并且label2在label上方
		this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
		// 将内容面板设置为透明,就能够看见添加在LayeredPane上的背景。
		((JPanel) this.getContentPane()).setOpaque(false);

		/*
		 * 添加组件到contentPanel容器中 布局方式为自由布局。
		 */
		contentPanel.setLayout(null);
		add(admin);
		add(password);
		add(login);
		add(register);
		add(jlb1);
		add(jlb2);
		add(jlbtitle);

		/*
		 * 组件绝对位置
		 */
		jlb1.setBounds(50, 130, 90, 25);
		jlb1.setForeground(Color.WHITE);
		admin.setBounds(95, 130, 300, 25);
		password.setBounds(95, 154, 300, 25);
		jlb2.setBounds(50, 154, 90, 25);
		jlb2.setForeground(Color.WHITE);
		register.setBounds(95, 225, 90, 20);
		login.setBounds(315, 225, 90, 20);
		jlbtitle.setBounds(180, 45, 200, 50);
		Font f = new Font("微软雅黑", Font.BOLD, 30);
		jlbtitle.setFont(f);
		jlbtitle.setForeground(Color.BLUE);

		/*
		 * 组件透明化
		 */
		admin.setOpaque(true);
		password.setOpaque(true);
		contentPanel.setOpaque(false);
		getContentPane().add(contentPanel);

		/*
		 * 组件边框颜色
		 */
		textSet(admin);
		textSet(password);
	}

	/*
	 * JTextField文本框设置方法.
	 */
	private void textSet(JTextField field) {
		field.setBackground(new Color(255, 255, 255));
		field.setPreferredSize(new Dimension(150, 28));
		MatteBorder border = new MatteBorder(0, 0, 2, 0, new Color(192, 192, 192));
		field.setBorder(border);
	}

	/*
	 * 事件监听
	 */
	private void addListener() {
		login.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				forLogin(admin.getText(), password.getText());
			}

		});
		register.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				forRegister();
			}

		});
	}

	// 登录方法
	public void forLogin(String admin, String pwd) {
	}

	// 注册方法
	public void forRegister() {
	}
}

二、注册界面:
package cn.bms.view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.MatteBorder;

import cn.bms.controller.AdminLoginController;
import cn.bms.tools.GUITools;

/*
 * 注册窗口
 */
@SuppressWarnings("serial")
public class AdminRegister extends JFrame {
	private JPanel contentPanel = new JPanel();
	// Label标签存放背景图片
	private JLabel label;
	// 设置按钮组件
	private JButton ok = new JButton("确定注册"), back = new JButton("返回登录");

	private JLabel jlb1 = new JLabel("用户名:"), jlb2 = new JLabel("密码:"), jlb3 = new JLabel("确认密码:"),
			jlbtitle = new JLabel("注册界面");
	// 设置文本框组件
	private JTextField admin = new JTextField(), password1 = new JTextField(), password2 = new JTextField();

	public AdminRegister() {
		this.init();
		this.addListener();
	}

	private void init() {
		this.setTitle("管理员注册界面");
		this.setSize(500, 350);
		GUITools.center(this);
		ImageIcon image1 = new ImageIcon("837878.jpg"); // 界面背景图片
		JLabel backLabel = new JLabel();
		backLabel.setIcon(image1);
		label = new JLabel(image1);
		label.setBounds(0, 0, 1000, 400);
		// 在LayeredPane最底层上添加两个带图片的标签,并且label2在label上方
		this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
		// 将内容面板设置为透明,就能够看见添加在LayeredPane上的背景。
		((JPanel) this.getContentPane()).setOpaque(false);

		/*
		 * 添加组件到contentPanel容器中 布局方式为自由布局。
		 */
		contentPanel.setLayout(null);
		add(admin);
		add(password1);
		add(password2);
		add(ok);
		add(back);
		add(jlb1);
		add(jlb2);
		add(jlb3);
		add(jlbtitle);

		/*
		 * 组件绝对位置
		 */
		jlb1.setBounds(40, 130, 90, 25);
		jlb1.setForeground(Color.WHITE);
		admin.setBounds(95, 130, 300, 25);

		password1.setBounds(95, 154, 300, 25);
		jlb2.setBounds(40, 154, 90, 25);
		jlb2.setForeground(Color.WHITE);

		password2.setBounds(95, 178, 300, 25);
		jlb3.setBounds(40, 178, 90, 25);
		jlb3.setForeground(Color.WHITE);

		ok.setBounds(315, 225, 90, 20);
		back.setBounds(95, 225, 90, 20);

		jlbtitle.setBounds(180, 45, 200, 50);
		Font f = new Font("微软雅黑", Font.BOLD, 30);
		jlbtitle.setFont(f);
		jlbtitle.setForeground(Color.BLUE);

		/*
		 * 组件透明化
		 */
		admin.setOpaque(true);
		password1.setOpaque(true);
		password2.setOpaque(true);
		contentPanel.setOpaque(false);
		getContentPane().add(contentPanel);

		/*
		 * 组件边框颜色
		 */
		textSet(admin);
		textSet(password1);
		textSet(password2);
	}

	/*
	 * JTextField文本框设置方法.
	 */
	private void textSet(JTextField field) {
		field.setBackground(new Color(255, 255, 255));
		field.setPreferredSize(new Dimension(150, 28));
		MatteBorder border = new MatteBorder(0, 0, 2, 0, new Color(192, 192, 192));
		field.setBorder(border);
	}

	/*
	 * 事件监听
	 */
	private void addListener() {
		ok.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				setRegister(admin.getText(), password1.getText(), password2.getText());
			}
		});
		back.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				new AdminLoginController().setVisible(true);
			}
		});
	}

	// 实现注册账户方法
	public void setRegister(String admin, String pwd1, String pwd2) {
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章