package main$system;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
* 登陆窗口
*
* @author shado
*
*/
public class LoginWindow extends JPanel {
private static final long serialVersionUID = 1L;
static final int WIDTH = 260;// 顶层窗口的宽度
static final int HEIGHT = 150;// 顶层窗口的高度
JFrame loginframe;
/**
* 此方法用于添加控件到容器中 按照网格组布局方式排列组件的方法
*
* @param c
* @param constraints
* @param x
* 指控件位于第几列
* @param y
* 指控件位于第几行
* @param w
* 指控件需要占几列
* @param h
* 指控件需要占几行
*/
public void add(Component c, GridBagConstraints constraints, int x, int y, int w, int h) {
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
add(c, constraints);// 这句话的意思是:把组件c和约束条件constraints添加到对象panel中,因为该类是继承自JPanel的子类,所以可直接调用父类add方法
}
/**
* 这是一个构造方法
*/
LoginWindow() {
loginframe = new JFrame("欢迎使用李炎帐号存储程序");// loginframe 是登陆界面的顶层框架
loginframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置loginframe的默认关闭方式
GridBagLayout lay = new GridBagLayout();// lay 网格组布局对象
setLayout(lay);// 中间容器设置为网格组布局
loginframe.add(this, BorderLayout.WEST);
loginframe.setSize(WIDTH, HEIGHT);
Toolkit kit = Toolkit.getDefaultToolkit();// 获得Toolkit对象
Dimension screenSize = kit.getScreenSize();// 获得Dimension对象
int width = screenSize.width;// 获得屏幕宽度
int height = screenSize.height;// 获得屏幕高度
int x = (width - WIDTH) / 2;// 登陆窗口居中
int y = (height - HEIGHT) / 2;
loginframe.setLocation(x, y);// 登录窗口位置
JButton ok = new JButton("登陆");// ok 登陆按钮
JButton cancel = new JButton("退出");// cancel 退出按钮
JLabel title = new JLabel("帐号存储程序登陆入口");
JLabel username = new JLabel("用户名");
JLabel password = new JLabel("密码");
final JTextField usernameinput = new JTextField(13);
final JPasswordField passwordinput = new JPasswordField(13);
GridBagConstraints constraints = new GridBagConstraints();// constraints 网格组布局管理器约束对象
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
constraints.gridwidth = 4;
constraints.gridheight = 4;
add(title, constraints, 2, 0, 2, 1);
add(username, constraints, 1, 1, 2, 1);
add(password, constraints, 1, 2, 2, 1);
add(usernameinput, constraints, 3, 1, 2, 1);
add(passwordinput, constraints, 3, 2, 2, 1);
add(ok, constraints, 1, 3, 1, 1);
add(cancel, constraints, 3, 3, 1, 1);
loginframe.setResizable(false);//登陆窗口大小不可变
loginframe.setVisible(true);//登陆窗口可见
//ok按钮添加一个动作监听器,当单机“确定”按钮后,调用actionPerformed方法,执行方法内的命令
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String usernametext=usernameinput.getText();//usernametext获取文本框内容
@SuppressWarnings("deprecation")
String passwordtext=passwordinput.getText();//passwordtext获取文本框内容
String str=new String(passwordtext);
System.out.println("usernametext:"+usernametext);
System.out.println("passwordtext:"+passwordtext);
boolean x=(usernametext.equals("liyan123"));
boolean y=(str.equals("Liyan1234"));
boolean z=(x&&y);
if(z==true) {
new MainWindow();
loginframe.dispose();
}else if(z==false){
usernameinput.setText("");
passwordinput.setText("");
}
}
});
//cancel按钮添加一个动作监听器,当单机“退出”按钮后,调用actionPerformed方法,执行方法内的命令
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
loginframe.dispose();
}
});
}
public static void main(String args[]) {
LoginWindow login = new LoginWindow();
}
}