📄 login.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 + -