天天看點

java 聊天室界面_java圖形界面聊天室簡版

這是服務端:

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("");

}

}

}

}

下面是效果圖:

java 聊天室界面_java圖形界面聊天室簡版