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) {
	}
}

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