📄 clientframe.java
字号:
/*
* Created on 2004-12-15
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
/**
* @author mq
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.io.*;
import java.net.*;
public class ClientFrame extends JFrame {
private JComboBox combobox;
private JTextArea textarea;
private JTextField textfield;
private JCheckBox checkbox;
private JComboBox actionlist;
private JButton login;
private JButton logout;
private Border border;
private JTextField seperater;
Socket socket;
ObjectOutputStream output;
ObjectInputStream input;
ClientReceiveThread recvThread;
public ClientFrame()
{
super("client");
border = BorderFactory.createCompoundBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,Color.white,Color.white),BorderFactory.createEmptyBorder(1,1,1,1));
login = new JButton("login");
logout= new JButton("logout");
logout.setEnabled(false);
combobox = new JComboBox();
combobox.addItem("all");
combobox.setSelectedIndex(0);
textarea = new JTextArea(20,20);
textarea.setEditable(false);
textfield = new JTextField("请输入您的昵称!",20);
seperater = new JTextField("",20);
seperater.setEditable(false);
checkbox = new JCheckBox("悄悄话");
checkbox.setSelected(false);
actionlist = new JComboBox();
actionlist.addItem("微笑着");
actionlist.addItem("生气地");
actionlist.addItem("小心地");
actionlist.setSelectedIndex(0);
login.setBorder(border);
login.setBounds( 30,30,90,30);
logout .setBorder(border);
logout .setBounds(150,30,90,30);
seperater.setBounds(30, 75,300, 20);
textarea .setBounds(30,110,300,300);
combobox .setBounds(30,425, 90, 30);
actionlist .setBounds(150,425, 90, 30);
checkbox .setBounds(270,425, 90, 30);
textfield.setBounds(30,470,300, 20);
Container c = getContentPane();
c.setLayout(null);
c.add(login ,null);
c.add(logout,null);
c.add(seperater,null);
c.add(textarea,null);
c.add(combobox,null);
c.add(actionlist,null);
c.add(checkbox,null);
c.add(textfield,null);
login.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
LogIn();
}
}
);
logout.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
LogOut();
}
}
);
textfield.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
SendMessage();
}
}
);
this.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
LogOut();
System.exit(0);
}
}
);
setSize(370,570);
show();
}
public void LogIn()
{
try
{
socket = new Socket("59.64.7.48",8000);
output = new ObjectOutputStream(socket.getOutputStream());
output.flush();
input = new ObjectInputStream(socket.getInputStream() );
output.writeObject(textfield.getText());
output.flush();
recvThread = new ClientReceiveThread(socket,output,input,combobox,textarea);
recvThread.start();
login.setEnabled(false);
logout.setEnabled(true);
textfield.setText("请输入聊天信息!");
}
catch (Exception e)
{
//
}
}
public void LogOut()
{
login.setEnabled(true);
logout.setEnabled(false);
textfield.setText("请输入您的昵称!");
if(socket.isClosed())
{
return ;
}
try
{
output.writeObject("用户下线");
output.flush();
input.close();
output.close();
socket.close();
}
catch (Exception e)
{
//
}
}
public void SendMessage()
{
String toSomebody = combobox.getSelectedItem().toString();
String status = "";
if(checkbox.isSelected())
{
status = "悄悄话";
}
String action = actionlist.getSelectedItem().toString();
String message = textfield.getText();
if(socket.isClosed())
{
return ;
}
try
{
output.writeObject("聊天信息");
output.flush();
output.writeObject(toSomebody);
output.flush();
output.writeObject(status);
output.flush();
output.writeObject(action);
output.flush();
output.writeObject(message);
output.flush();
}
catch (Exception e)
{
//
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -