?? loginframe.java
字號:
package com.tarena.abs.client;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import com.tarena.abs.model.*;
/**
* 該類描述一個登錄窗口
* @author tony.tang
*
*/
public class LoginFrame extends JFrame implements ActionListener{
private JLabel[] label;//所有標簽
private JTextField name;
private JPasswordField password;
private JButton ok;
private JButton cancel;
private JPanel jp1,jp2,jp3;
private ObjectInputStream ois;
private ObjectOutputStream oos;
public LoginFrame(ObjectInputStream ois,ObjectOutputStream oos){
super("航班機票預定系統--客戶登錄");
label=new JLabel[3];
label[0]=new JLabel("用 戶 名:");
label[1]=new JLabel("密 碼:");
label[2]=new JLabel("客戶登錄");
name=new JTextField(20);
password=new JPasswordField(20);
ok=new JButton("登錄");
cancel=new JButton("取消");
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
this.ois=ois;
this.oos=oos;
init();
setAllFont();
addEventHandle();
}
private void init(){
jp1.setLayout(new FlowLayout(FlowLayout.CENTER,10,20));
jp1.add(label[2]);
this.add(jp1,BorderLayout.NORTH);
jp2.setLayout(new FlowLayout(FlowLayout.CENTER,5,10));
jp2.add(label[0]);jp2.add(name);
jp2.add(label[1]);jp2.add(password);
this.add(jp2,BorderLayout.CENTER);
jp3.setLayout(new FlowLayout(FlowLayout.CENTER,50,20));
jp3.add(ok);jp3.add(cancel);
this.add(jp3,BorderLayout.SOUTH);
}
private void setAllFont(){
Font f1=new Font("",Font.BOLD,20);
Font f2=new Font("仿宋",Font.BOLD,30);
for(int i=0;i<label.length-1;i++){
label[i].setFont(f1);
}
label[label.length-1].setFont(f2);
label[label.length-1].setForeground(Color.RED);
name.setFont(f1);
password.setFont(f1);
ok.setFont(f1);
cancel.setFont(f1);
}
public void showMe(){
this.setSize(540,360);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void addEventHandle(){
ok.addActionListener(this);
cancel.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("登錄")){
if(name.getText().equals("") || new String(password.getPassword()).equals("")){
JOptionPane.showMessageDialog(this,"姓名和密碼不能為空!");
return;
}
try {
Request req=new Request("login");
req.setData("UserName",name.getText());
req.setData("Password",new String(password.getPassword()));
oos.writeObject(req);
oos.flush();
System.out.println("oos:"+oos);
System.out.println("ois:"+ois);
Response res=(Response)ois.readObject();
Agent user=(Agent)res.getData();
if(user!=null){
new ClientMainFrame(ois,oos,user).showMe();
this.dispose();
}else{
JOptionPane.showMessageDialog(this,"對不起,用戶名和密碼不正確,請重新輸入!");
}
} catch (Exception e1) {
e1.printStackTrace();
}
}else if(e.getActionCommand().equals("取消")){
try {
Request req=new Request("quit");
oos.writeObject(req);
oos.flush();
System.exit(0);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -