运行结果截图:
/** * 欢迎大家使用这个源码 如有疑问请加:151648295 * */ package com.xiangqiao123.server; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class MyServer extends JFrame implements ActionListener, KeyListener { JPanel jp = null; JTextArea jta = null; JScrollPane jsp = null; JTextField jtf = null; JButton jb = null; PrintWriter pw = null; public static void main(String[] args) { new MyServer(); } public MyServer() { //为文本域添加一个滚动条 jta = new JTextArea(); jsp = new JScrollPane(jta); jtf = new JTextField(15); jtf.addKeyListener(this); jb = new JButton("发送"); jb.addActionListener(this); jp = new JPanel(); jp.add(jtf); jp.add(jb); this.add(jsp, BorderLayout.CENTER); this.add(jp, BorderLayout.SOUTH); this.setSize(300, 200); this.setTitle("qq简易聊天"); this.setIconImage(new ImageIcon("image/icon.jpg").getImage()); // 设置窗体居中 Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int) ((size.getWidth() - this.getWidth()) / 2), (int) ((size.getHeight() - this.getHeight()) / 2)); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); try { ServerSocket ss = new ServerSocket(9999); Socket s = ss.accept(); // 读取从客户端发来的信息 InputStreamReader isr = new InputStreamReader(s.getInputStream()); BufferedReader br = new BufferedReader(isr); pw = new PrintWriter(s.getOutputStream(), true); while (true) { String info = br.readLine(); jta.append(info + "\n"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == jb) { String info = jtf.getText(); pw.println("服务器:" + info); jta.append("服务器:" + info + "\n"); jtf.setText(""); } } @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub if (e.getKeyCode() == KeyEvent.VK_ENTER) { String info = jtf.getText(); pw.println("服务器:" + info); jta.append("服务器:" + info + "\n"); jtf.setText(""); } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } }源码下载:
欢迎大家关注我的博客,有什么问题可以评论,也可以加入我的:151648295 希望大家一起进步。
我的博客更新很快的哦,这次十月一假期我将给大家分享一个j2se的项目,“制作山寨版qq”,欢迎大家一起关注啊。