java图形界面聊天室简版

来源:互联网 发布:中国万网域名查询 编辑:程序博客网 时间:2024/06/07 01:48
这是服务端:package server;import javax.swing.*;import java.awt.event.*;import java.io.*;import java.net.*;import java.util.Calendar;public class Server extends JFrame implements ActionListener{static JTextArea jta=null;JTextField jtf=null;JScrollPane jsp=null;JButton jb_send=null;JPanel jp=null;static Socket socket=null;static String text_message;public static void main(String[] args) throws IOException {ServerSocket server=null;new Server();try{server=new ServerSocket(8001);socket=server.accept();}catch(Exception e){System.out.println("不能监听:"+e);}while(true){BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));jta.append(br.readLine()+"\n");}}public Server(){jta=new JTextArea();jta.setEditable(false);jsp=new JScrollPane(jta);jtf=new JTextField(20);jp=new JPanel();jb_send=new JButton("发送");jb_send.addActionListener(this);jp.add(jtf);jp.add(jb_send);this.add(jsp,"Center");this.add(jp,"South");this.setTitle("服务端");this.setSize(300, 200);this.setLocation(318,186);this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {if(e.getSource()==jb_send){if(jtf.getText().equals("")){JOptionPane.showMessageDialog(null, "消息不能为空");}else{text_message=jtf.getText();jta.append("服务端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message+"\n");PrintWriter pw;try {pw = new PrintWriter(socket.getOutputStream(),true);if(!text_message.equals("")){pw.println("服务端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message);}} catch (IOException e1) {e1.printStackTrace();}jtf.setText("");}}}}这是客户端:package client;import java.io.*;import java.net.*;import java.util.*;import java.awt.event.*;import javax.swing.*;public class Client extends JFrame implements ActionListener{static JTextArea jta=null;JTextField jtf=null;JPanel jp=null;JButton jb_send=null;JScrollPane jsp=null;static String text_message;static Socket socket=null;public static void main(String[] args) throws IOException {new Client();socket=new Socket("127.0.0.1",8001);while(true){BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));jta.append(is.readLine()+"\n");}}public Client(){jta=new JTextArea();jta.setEditable(false);jtf=new JTextField(20);jb_send=new JButton("发送");jb_send.addActionListener(this);jp=new JPanel();jsp=new JScrollPane(jta);jp.add(jtf);jp.add(jb_send);this.add(jsp,"Center");this.add(jp,"South");this.setTitle("客户端");this.setSize(300, 200);this.setLocation(636,186);this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {if(e.getSource()==jb_send){if(jtf.getText().equals("")){JOptionPane.showMessageDialog(null, "消息不能为空");}else{text_message=jtf.getText();try{PrintWriter pw=null;pw=new PrintWriter(Client.socket.getOutputStream(),true);if(!text_message.equals("")){pw.println("客户端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message);}}catch(Exception e1){e1.printStackTrace();}jta.append("客户端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message+"\n");jtf.setText("");}}}}


下面是效果图:




0 0
原创粉丝点击