📄 simplechatclient.java
字号:
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleChatClient
{
JTextArea entrants;
JTextField sortants;
BufferedReader lecture;
PrintWriter ecriture;
Socket sock;
String nompseudo;
String iprotocol= "127.0.0.1";
public SimpleChatClient(String nom)
{
nompseudo=nom;
}
public SimpleChatClient(String nom, String internetprotocol)
{
iprotocol=internetprotocol;
nompseudo=nom;
}
public SimpleChatClient()
{
}
public static void main(String[] args)
{
SimpleChatClient client = new SimpleChatClient();
client.go();
}
public void go()
{
JFrame cadre = new JFrame("Chat v 1.0 www.gilles4.com");
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panneau= new JPanel();
entrants=new JTextArea(15,30);
entrants.setLineWrap(true);
entrants.setWrapStyleWord(true);
entrants.setEditable(false);
JScrollPane zoneTexte = new JScrollPane(entrants);
zoneTexte.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
zoneTexte.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
sortants = new JTextField(20);
JButton boutonEnvoi = new JButton("Envoyer...");
boutonEnvoi.addActionListener(new EcouteBoutonEnvoi());
panneau.add(zoneTexte);
panneau.add(sortants);
panneau.add(boutonEnvoi);
installerReseau();
Thread threadLecture= new Thread(new LectureEntrants());
threadLecture.start();
cadre.getContentPane().add(BorderLayout.CENTER, panneau);
cadre.setSize(400,350);
cadre.setVisible(true);
}
private void installerReseau()
{
try
{
sock= new Socket(iprotocol,5000);
InputStreamReader isr= new InputStreamReader(sock.getInputStream());
lecture= new BufferedReader(isr);
ecriture= new PrintWriter(sock.getOutputStream());
System.out.println("Connection 閠ablie");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public class EcouteBoutonEnvoi implements ActionListener
{
public void actionPerformed(ActionEvent ev)
{
try
{
ecriture.println(nompseudo+" dit: "+sortants.getText());
ecriture.flush();
}
catch(Exception e)
{
e.printStackTrace();
}
sortants.setText("");
sortants.requestFocus();
}
}
public class LectureEntrants implements Runnable
{
public void run()
{
String message;
try
{
while((message=lecture.readLine()) !=null)
{
System.out.println("lire "+message);
entrants.append(message +"\n");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -