?? loginframe.java
字號:
package com.tarena.exam.gui;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.tarena.exam.model.Request;
import com.tarena.exam.model.Student;
import com.tarena.exam.util.SocketUtil;
public class LoginFrame implements ActionListener{
private JFrame jf;
private JLabel title;
private JLabel idLabel,passwdLabel;
private JTextField idField;
private JPasswordField passwdField;
private JButton ok,cancel;
public LoginFrame(){
jf=new JFrame("考生登錄");
title=new JLabel("考生登錄");
idLabel=new JLabel("學(xué)號:");
passwdLabel=new JLabel("密碼:");
idField=new JTextField(15);
passwdField=new JPasswordField(15);
ok=new JButton("登錄");
cancel=new JButton("取消");
init();
addEventHandler();
}
private void init(){
JPanel northPanel=new JPanel();
northPanel.add(title);
JPanel centerPanel=new JPanel();
centerPanel.add(idLabel);
centerPanel.add(idField);
centerPanel.add(passwdLabel);
centerPanel.add(passwdField);
JPanel southPanel=new JPanel();
southPanel.add(ok);
southPanel.add(cancel);
jf.add(southPanel,BorderLayout.SOUTH);
jf.add(centerPanel,BorderLayout.CENTER);
jf.add(northPanel,BorderLayout.NORTH);
}
private void addEventHandler(){
ok.addActionListener(this);
cancel.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("登錄")){
if(idField.getText().trim().equals("") || new String(passwdField.getPassword()).trim().equals("")){
JOptionPane.showMessageDialog(jf,"ID 和密碼不能為空!");
return;
}
String id=idField.getText().trim();
String passwd=new String(passwdField.getPassword()).trim();
try {
SocketUtil.createSocket();
ObjectOutputStream oos=SocketUtil.getOutputStream();
Request req=new Request(Request.LOGIN_REQUEST);
req.addData("id",id);
req.addData("passwd",passwd);
oos.writeObject(req);
oos.flush();
ObjectInputStream ois=SocketUtil.getInputStream();
Student stu=(Student)ois.readObject();
List list=(List)ois.readObject();
if(stu!=null){
new SelectSubjectFrame(stu,list).showMe();
jf.dispose();
}
} catch (Exception e1) {
e1.printStackTrace();
}
//????
//(1)獲取學(xué)號和密碼的值
//(2)發(fā)送請求給服務(wù)器
//(3)接受服務(wù)器的應(yīng)答
//(4)解析應(yīng)答結(jié)果
}else if(e.getActionCommand().equals("取消")){
System.exit(0);
}
}
public void showMe(){
jf.setSize(240,180);
jf.setResizable(false);
jf.setLocation(400,300);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new LoginFrame().showMe();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -