📄 login.java
字号:
package com.cnu.cie.olts.client;import java.awt.BorderLayout;import java.awt.Event;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.Socket;import java.net.SocketException;import java.security.MessageDigest;import javax.swing.BoxLayout;import javax.swing.ComboBoxModel;import javax.swing.DefaultComboBoxModel;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFormattedTextField;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.WindowConstants;import javax.swing.SwingUtilities;import com.cnu.cie.olts.client.admin.AdminFrame;import com.cnu.cie.olts.client.student.StudentFrame;import com.cnu.cie.olts.client.teacher.TeacherFrame;/*** This code was edited or generated using CloudGarden's Jigloo* SWT/Swing GUI Builder, which is free for non-commercial* use. If Jigloo is being used commercially (ie, by a corporation,* company or business for any purpose whatever) then you* should purchase a license for each developer using Jigloo.* Please visit www.cloudgarden.com for details.* Use of Jigloo implies acceptance of these licensing terms.* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.*/public class Login extends javax.swing.JFrame { private JLabel jLabel1; private JLabel pslabel; private JLabel statelabel; private JComboBox statecombobox; private JButton loginbt; private JTextField porttext; private JLabel portlabel; private JTextField iptext; private JLabel iplabel; private JButton settingbt; private JPasswordField pstext; private JTextField IDtext; private boolean unfold=false; static Socket socket; static BufferedReader bufreader=null; static PrintWriter pswriter=null; public static String id=null; public static String ps=null; public static String status=null; public static String serverip=null; public static int serverport=5000; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Login inst = new Login(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public Login() { super(); initGUI(); } //实现关闭登录程序要进行的操作 protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { try { if(socket!=null&&!socket.isClosed()){ socket.close(); socket=null; } if(bufreader!=null) bufreader.close(); if(pswriter!=null) pswriter.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.exit(0); } } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); this.setTitle("\u767b\u5f55\u8054\u673a\u6d4b\u8bd5\u7cfb\u7edf"); { jLabel1 = new JLabel(); getContentPane().add(jLabel1); jLabel1.setText("\u7528\u6237\u540d"); jLabel1.setBounds(45, 31, 47, 21); jLabel1.setName("idlabel"); } { IDtext = new JTextField(); getContentPane().add(IDtext); IDtext.setBounds(99, 31, 119, 21); IDtext.setName("idtext"); } { pslabel = new JLabel(); getContentPane().add(pslabel); pslabel.setText("\u5bc6 \u7801"); pslabel.setBounds(45, 66, 47, 19); } { pstext = new JPasswordField(); getContentPane().add(pstext); pstext.setBounds(99, 64, 119, 21); } { statelabel = new JLabel(); getContentPane().add(statelabel); statelabel.setText("\u8eab \u4efd"); statelabel.setBounds(45, 97, 47, 14); } { ComboBoxModel statecomboboxModel = new DefaultComboBoxModel( new String[] { "学生", "教师" ,"管理员" }); statecombobox = new JComboBox(); getContentPane().add(statecombobox); statecombobox.setModel(statecomboboxModel); statecombobox.setBounds(99, 94, 79, 21); } { loginbt = new JButton(); getContentPane().add(loginbt); loginbt.setText("\u767b\u5f55"); loginbt.setBounds(159, 134, 68, 21); loginbt.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { loginbtActionPerformed(evt); } }); } { settingbt = new JButton(); getContentPane().add(settingbt); settingbt.setText("\u8bbe\u7f6e"); settingbt.setBounds(49, 134, 65, 21); settingbt.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(unfold) setSize(300, 250); else setSize(300, 200); unfold=!unfold; } }); } { iplabel = new JLabel(); getContentPane().add(iplabel); iplabel.setText(" \u5730\u5740"); iplabel.setBounds(25, 183, 29, 14); } { iptext = new JTextField(); getContentPane().add(iptext); iptext.setBounds(61, 180, 85, 21); iptext.setText("127.0.0.1"); } { portlabel = new JLabel(); getContentPane().add(portlabel); portlabel.setText("\u7aef\u53e3"); portlabel.setBounds(186, 183, 30, 14); } { porttext = new JTextField(); getContentPane().add(porttext); porttext.setText("5000"); porttext.setBounds(222, 180, 41, 21); } pack(); this.setSize(300, 200); this.setResizable(false); } catch (Exception e) { e.printStackTrace(); } } public void loginbtActionPerformed(ActionEvent evt) { //System.out.println("loginbt.actionPerformed, event="+evt); //TODO add your code for loginbt.actionPerformed id=IDtext.getText().trim(); ps=pstext.getText().trim(); status=statecombobox.getSelectedItem().toString(); serverip=iptext.getText(); serverport=Integer.parseInt(porttext.getText()); if("".equals(id)){ JOptionPane.showMessageDialog(null,"用户名不能为空","登录失败",JOptionPane.ERROR_MESSAGE); return; } if("".equals(ps)){ JOptionPane.showMessageDialog(null,"密码不能为空","登录失败",JOptionPane.ERROR_MESSAGE); return; } try { if(socket!=null&&!socket.isClosed()){ socket.close(); } socket=new Socket(serverip,serverport); System.out.println("login socket is--"+socket.toString()); bufreader=new BufferedReader(new InputStreamReader(socket.getInputStream())); pswriter=new PrintWriter(socket.getOutputStream()); //密码md5加密 // byte[] data =ps.getBytes(); /// MessageDigest md = MessageDigest.getInstance("MD5"); /// ps = new String(md.digest(data)); String st="LOGIN:"+id+":"+ps+":"+status; pswriter.println(st); pswriter.flush(); loginbt.setEnabled(false); new Thread(){public void run(){ String loginfostring = ""; try { loginfostring = bufreader.readLine(); } catch (IOException e) { // TODO Auto-generated catch block if(socket!=null&&!socket.isClosed()) System.out.println(e.getMessage()); loginbt.setEnabled(true); } if(loginfostring==null){ JOptionPane.showMessageDialog(null,"网络不通或者服务器没开启服务","连接失败",JOptionPane.ERROR_MESSAGE); loginbt.setEnabled(true); } else if("LOGINSUCC".equals(loginfostring)){ if("学生".equals(status)) new StudentFrame(socket,bufreader,pswriter).setVisible(true); else if("教师".equals(status)) new TeacherFrame(socket,bufreader,pswriter).setVisible(true); else new AdminFrame(socket,bufreader,pswriter).setVisible(true); setVisible(false); } else if("LOGINFAIL".equals(loginfostring)){ JOptionPane.showMessageDialog(null,"该身份的用户名或者密码输入错误","登录失败",JOptionPane.ERROR_MESSAGE); loginbt.setEnabled(true); } else if("ALREADYONLINE".equals(loginfostring)){ JOptionPane.showMessageDialog(null,"你已经在线了,不能重复登录","登录失败",JOptionPane.ERROR_MESSAGE); loginbt.setEnabled(true); } }}.start(); } catch (Exception e1) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null,"网络连接失败,请检查网络设置以及目标主机服务是否启动","登录失败",JOptionPane.ERROR_MESSAGE); loginbt.setEnabled(true); if(socket!=null&&!socket.isClosed()) try { socket.close(); } catch (IOException e) { System.out.println(e.getMessage()); } System.out.println(e1.getMessage()); } System.out.println("id--"+id); System.out.println("ps--"+ps); System.out.println("state--"+status); System.out.println("ip--"+serverip); System.out.println("port--"+serverport); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -