📄 log.java
字号:
package chat;
import java.net.*;
import java.io.*;
import java.util.Hashtable;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Log extends JFrame implements ActionListener{
private static JTextField textFieldl_serviceip;//服务器ip
private static JTextField textFieldl_ID;//登录帐号
private static TextField textFieldl_code;//登录密码
private static JTextArea textArea_l;//显示消息
public Socket socket_l;//声明发送和接收数据的套接字
private static String s_l;//要发送的信息
private static DataInputStream inputstream_l;
private static DataOutputStream outputstream_l;
private static Hashtable listTable;//存放在线聊天者ID和名称的散列表
public Log()throws IOException{
super("飞腾");
setSize(300,300);
setBackground(Color.LIGHT_GRAY);
Container contentPane=getContentPane();
contentPane.setLayout(new GridLayout(5,1));
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(1,2));
JLabel label1=new JLabel(" 服务器IP:");
panel1.add(label1);
textFieldl_serviceip=new JTextField(20);
panel1.add(textFieldl_serviceip);
JPanel panel2=new JPanel();
panel2.setLayout(new GridLayout(1,2));
JLabel label2=new JLabel(" 登录号码:");
panel2.add(label2);
textFieldl_ID=new JTextField(20);
panel2.add(textFieldl_ID);
JPanel panel3=new JPanel();
panel3.setLayout(new GridLayout(1,2));
JLabel label3=new JLabel(" 登录密码:");
panel3.add(label3);
textFieldl_code=new TextField(30);
textFieldl_code.setEchoChar('*');
textFieldl_code.addActionListener(this);
panel3.add(textFieldl_code);
JPanel panel4=new JPanel();
textArea_l=new JTextArea(2,20);
textArea_l.setBackground(Color.WHITE);
textArea_l.setEditable(false);
textArea_l.setLineWrap(true);
JScrollPane scrolledText=new JScrollPane(textArea_l);
panel4.add(scrolledText);
JPanel panel5=new JPanel();
panel5.setLayout(new GridLayout(1,2));
JButton log_button=new JButton("登录");
log_button.addActionListener(this);
panel5.add(log_button);
JButton cancel_lbutton=new JButton("取消");
cancel_lbutton.addActionListener(this);
panel5.add(cancel_lbutton);
contentPane.add(panel1);
contentPane.add(panel2);
contentPane.add(panel3);
contentPane.add(panel4);
contentPane.add(panel5);
listTable=new Hashtable();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
}
public void actionPerformed(ActionEvent e)
{
String actionCommand=e.getActionCommand();
try{
if(actionCommand.equals("登录")||e.getSource()==textFieldl_code){
socket_l=new Socket(textFieldl_serviceip.getText(),5000);
if(socket_l!=null){
outputstream_l=new DataOutputStream(socket_l.getOutputStream());
inputstream_l=new DataInputStream(socket_l.getInputStream());
s_l="登录:"+textFieldl_ID.getText()+"!"+textFieldl_code.getText();
try{
outputstream_l.writeUTF(s_l);
}
catch(IOException exc){
exc.printStackTrace() ;
}
String message=inputstream_l.readUTF();
textArea_l.append("\n"+message);
if(message.startsWith("登录成功")){
String temp_name=message.substring(message.indexOf(":")+1);
listTable.put(textFieldl_ID.getText(),temp_name+"("+textFieldl_ID.getText()+")");
ChatFrame cf=new ChatFrame(socket_l,textFieldl_ID.getText(),temp_name,listTable);
cf.setVisible(true);
this.setVisible(false);
}
}
else throw new IOException("连接服务器出现异常,请确认服务器正在运行!");
}
else System.exit(0);
}
catch(IOException exc){
String m=exc.getMessage();
textArea_l.append(m);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -