📄 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("学号:");
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)获取学号和密码的值
//(2)发送请求给服务器
//(3)接受服务器的应答
//(4)解析应答结果
}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();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -