?? clientchat.java
字號:
package org.my.test.chat;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientChat extends JFrame{
private JTextArea jta;
private JTextField jtf;
private Socket s;
PrintWriter pw;
BufferedReader br;
public ClientChat(String title){
super(title);
jta=new JTextArea();
jtf=new JTextField();
jta.setEditable(false);
add(jta);
add(jtf,"South");
try {
s=new Socket("127.0.0.1", 9100);
} catch (UnknownHostException e) {
JOptionPane.showMessageDialog(null, "請輸入正確的主機地址", "注意",
JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "連接到服務失敗..", "注意",
JOptionPane.ERROR_MESSAGE);
}
jtf.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(jtf.getText().trim().equals("")){
JOptionPane.showMessageDialog(null, "請輸入消息..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}else{
try {
pw=new PrintWriter(s.getOutputStream());
pw.println(jtf.getText().trim());
pw.flush();
jtf.setText("");
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "連接服務器失敗..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
});
this.setBounds(300, 200, 300, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public void reMsg(){
while(true){
try {
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=br.readLine();
jta.append(str);
jta.append("\n");
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "連接服務器失敗..", "注意",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
public static void main(String[] args) {
ClientChat cc=new ClientChat("聊天窗口");
cc.reMsg();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -