⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.java

📁 JAVA网络聊天室.运用网络编程、文件操作、数据流处理以及多线程等基础技术编写一个网络聊天室.
💻 JAVA
字号:
/**********************************************************************************/
////////////////////////////////////登陆验证源文件///////////////////////////////////
/**********************************************************************************/
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class Login extends JFrame implements ActionListener
{
    static String l_serverIP;
    static int l_PORT;
    static MyFrame.submitAction myFrame;
    
    JLabel lblUserName;
    JLabel lblUserPwd;
    JTextField txtUsrName;
    JPasswordField txtUsrPwd;
    JButton btnLogin;
    JButton btnCancel;
    JButton btnRegister;
    String UsrName;
    String PetName;
    char[] UsrPwd;
    String strPwd;
    Socket toServer;
    ObjectInputStream streamFromServer;
    PrintStream streamToServer;
   /****************************主方法******************************/  
    public static void main(String args[])
    {
        new Login(l_serverIP, l_PORT);
    }
   /***************************构造函数*****************************/
    
    public Login(MyFrame.submitAction myFrame)
    {
        this.myFrame = myFrame;
    }
    
    public Login(String svrIP, int svrPORT)
    {
        l_serverIP = svrIP;
        l_PORT = svrPORT;
        setTitle("用户登录");
	JPanel panel = new JPanel();

	panel.setLayout(new GridBagLayout());
	GridBagConstraints gbCons = new GridBagConstraints();

	//在Frame上放置图形组件
	gbCons.gridx = 0;
	gbCons.gridy = 0;
	lblUserName = new JLabel("账号:");
	panel.add(lblUserName, gbCons);

	gbCons.gridx = 1;
	gbCons.gridy = 0;
	txtUsrName = new JTextField(17);
	panel.add(txtUsrName, gbCons);

	gbCons.gridx = 0;
	gbCons.gridy = 1;
	lblUserPwd = new JLabel("密码:");
	panel.add(lblUserPwd, gbCons);

	gbCons.gridx = 1;
	gbCons.gridy = 1;
	txtUsrPwd = new JPasswordField(17);
	panel.add(txtUsrPwd, gbCons);
        
        JPanel btnPanel = new JPanel();
	btnLogin = new JButton("登录");
	btnPanel.add(btnLogin);
	btnLogin.addActionListener(this); //为登录按钮添加监听器
	
        btnRegister = new JButton("注册");
	btnPanel.add(btnRegister);
	btnRegister.addActionListener(this); //为注册按钮添加监听器
	
        btnCancel = new JButton("取消");
	btnPanel.add(btnCancel);
	btnCancel.addActionListener(this); //为取消按钮添加监听器

	gbCons.gridx = 1;
	gbCons.gridy = 3;
	gbCons.anchor = GridBagConstraints.EAST;
	panel.add(btnPanel, gbCons);
	getContentPane().add(panel);
	setSize(280, 160);
	Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();  
        setLocation((screen.width-280)/2,(screen.height-160)/2);
	setVisible(true);
	setResizable(false);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    void showdlog()   //显示错误日志
    {
        JOptionPane.showMessageDialog(this, "用户名或密码非法", "错误消息", JOptionPane.ERROR_MESSAGE);
    }

    public void actionPerformed(ActionEvent E)
    {
        JButton button = (JButton)E.getSource();
        if (button.equals(btnRegister))
	{
            new Register(l_serverIP, l_PORT);  //调用注册程序
            this.dispose();
	}
        else if (button.equals(btnCancel))
        {
            this.dispose(); //关闭当前窗体
	}
	else if(button.equals(btnLogin))
	{
            try
            {
                //创建socket和对应的输入输出流
                toServer = new Socket(l_serverIP, l_PORT);
		streamFromServer = new ObjectInputStream(toServer.getInputStream());
		streamToServer = new PrintStream(toServer.getOutputStream());

		//登录时向服务器发送消息
		streamToServer.println("LoginInfo");
		UsrName = txtUsrName.getText();
		UsrPwd = txtUsrPwd.getPassword();
		strPwd = new String(UsrPwd);

		//向服务器发送用户名和密码
		streamToServer.println(UsrName + ":" + strPwd);

		//读取从服务器发回的消息
		String frmServer = (String)streamFromServer.readObject();

		if (frmServer.equals("Welcome"))    
		{
                    System.out.println("身份验证成功!正在登陆...");
                    this.dispose();
                    myFrame.cnet(UsrName); //开启聊天功能模块
		}
		else
		{
                    showdlog(); //显示错误信息
		}
            }
            catch (Exception e)
            {
                System.out.println("发生异常: " + e);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -