import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
public class ClientFrame {
public static void main(String args[ ]){
Client C1=new Client("重庆大学信息查询系统");
}
}
class Client extends JFrame implements ActionListener,Runnable{
JButton login,connect;
JTextField userid;
JPasswordField pwd;
JLabel appname,lid,lpwd;
Socket socket=null;
DataInputStream in=null;
DataOutputStream out=null;
Thread thread;
Show show;
String senduid,sendpwd;
Client(String s){
setTitle(s);
socket=new Socket();
login=new JButton("登录");
login.setFont(new Font("微软雅黑", Font.BOLD, 16));
login.setBounds(120,220,80,40);
connect=new JButton("连接");
connect.setFont(new Font("微软雅黑", Font.BOLD, 16));
connect.setBounds(280,220,80,40);
appname=new JLabel("重庆大学学生信息查询系统",JLabel.CENTER);
appname.setBounds(0,0,480,60);
appname.setFont(new Font("微软雅黑", Font.BOLD, 25));
userid=new JTextField(20);
userid.setBounds(140,85,240,35);
pwd=new JPasswordField(20);
pwd.setBounds(140,155,240,35);
pwd.setEchoChar('*');
lid=new JLabel("账号:");
lid.setFont(new Font("微软雅黑", Font.BOLD, 18));
lid.setBounds(70,80,50,40);
lpwd=new JLabel("密码:");
lpwd.setFont(new Font("微软雅黑", Font.BOLD, 18));
lpwd.setBounds(70,150,50,40);
Container con=getContentPane();
con.setLayout(null);
con.add(appname);
con.add(lid);
con.add(lpwd);
con.add(userid);
con.add(pwd);
con.add(login);
con.add(connect);
login.addActionListener(this);
connect.addActionListener(this);
thread=new Thread(this);
setBounds(443,224,480,320);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==connect){
try{
if(socket.isConnected()){
JOptionPane.showMessageDialog(null,"服务器已连接");
}
else
{
InetAddress address=InetAddress.getByName("127.0.0.1");
InetSocketAddress socketAddress=new InetSocketAddress(address,2345);
socket.connect(socketAddress);
in = new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
JOptionPane.showMessageDialog(null,"服务器连接成功");
thread.start();
}
}
catch(IOException ee){
JOptionPane.showMessageDialog(null,"服务器连接失败");
socket=new Socket();
}
}
else if(e.getSource()==login){
if(!socket.isConnected()){JOptionPane.showMessageDialog(null,"请先连接服务器");}
else {
try{
senduid=userid.getText();
sendpwd=pwd.getText();
out.writeUTF(senduid);
out.writeUTF(sendpwd);
}
catch(IOException e4){
JOptionPane.showMessageDialog(null,"未知异常");
}
}
}
}//actionperform
public void run(){
while(true){
try{
String NAME=in.readUTF();
String SEX=in.readUTF();
String MAJOR=in.readUTF();
if (NAME.equals("NULL")){
JOptionPane.showMessageDialog(null,"用户名或密码错误!");
}else{
show=new Show("基本信息",NAME,SEX,MAJOR);
}
}
catch(IOException e){
System.out.println("Server is Disconnected!");
break;
}
}
}
}
class Show extends JFrame implements ActionListener{
JLabel name,sex,major;
JTextField sname,ssex,smajor;
JButton close;
public Show(String s,String NAME,String SEX,String MAJOR){
setTitle(s);
close=new JButton("关闭");
close.setBounds(200,220,80,40);
name=new JLabel("姓名");
name.setBounds(80,80,60,30);
sex=new JLabel("性别");
sex.setBounds(80,120,60,30);
major=new JLabel("专业");
major.setBounds(80,160,60,30);
sname=new JTextField(20);
sname.setText(NAME);
sname.setBounds(150,80,250,30);
ssex=new JTextField(20);
ssex.setText(SEX);
ssex.setBounds(150,120,250,30);
smajor=new JTextField(20);
smajor.setText(MAJOR);
smajor.setBounds(150,160,250,30);
Container con=getContentPane();
con.setLayout(null);
con.add(name);con.add(sex);con.add(major);
con.add(sname);con.add(ssex);con.add(smajor);
con.add(close);
close.addActionListener(this);
setBounds(443,224,480,320);
setVisible(true);
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==close){
setVisible(false);
}
}
}