先看效果圖:
登陸界面:
註冊界面:
實現代碼如下:
一、登陸界面:
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) {
}
}