package client; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import server.ChatThread; import server.Message; public class FriendList extends JFrame implements MouseListener{ JPanel jphy1,jphy2,jphy3; JButton jphy_jb1,jphy_jb2,jphy_jb3; JScrollPane jsp1; String owner; JPanel jpmsr1,jpmsr2,jpmsr3; JButton jpmsr_jb1,jpmsr_jb2,jpmsr_jb3; JScrollPane jsp2; public static JLabel []jbs1; public static JLabel []jbs2; CardLayout c1; String name; public FriendList(String name) { this.name=name; this.setTitle(name); //设置窗体的标题 this.setSize(200, 650); //设置窗体的大小 this.setLocationRelativeTo(null); //设置窗体出现位置居中 this.setDefaultCloseOperation(3); //设置窗体的关闭操作 this.setResizable(true); //设置禁止调整窗体的大小 this.setIconImage((new ImageIcon("src/MyPicture/qq.png").getImage()));//设置标题栏图标 //好友面板********************************************* jphy_jb1=new JButton("我的好友"); jphy_jb2=new JButton("陌生人"); jphy_jb2.addActionListener(e->c1.show(this.getContentPane(),"2")); jphy_jb3=new JButton("黑名单"); jphy2=new JPanel(new GridLayout(50,1,4,4)); jbs1=new JLabel[30]; for(int i=0;ic1.show(this.getContentPane(),"1")); jpmsr_jb3=new JButton("黑名单"); jpmsr2=new JPanel(new GridLayout(20,1,4,4)); jbs2=new JLabel[20]; for(int i=0;ijbs1[Integer.parseInt(i)-1].setEnabled(true)) ; } } package s122803; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.*; 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 Server extends JFrame implements ActionListener { JTextArea jta = null; JButton jb = null; JTextField jtf = null; JPanel jp = null; JScrollPane jsp = null; PrintWriter pw = null; public Server() { jta = new JTextArea(); jb = new JButton("发送"); jb.addActionListener(this); // jtf = new JTextField(15); jp = new JPanel(); jp.add(jtf); jp.add(jb); jsp = new JScrollPane(jta); this.setTitle("服务器");// 设置窗体的标题 this.setSize(400, 300);// 设置窗体的大小 this.setDefaultCloseOperation(3);// 设置关闭的方式 this.setLocationRelativeTo(null);// 设置窗体出现在屏幕中间 this.setResizable(false);// 设置窗体不可改变大小 this.setLayout(new BorderLayout());// 设置窗体为空布局 this.add(jsp, BorderLayout.CENTER); this.add(jp, BorderLayout.SOUTH); this.setVisible(true); // 设置窗体属性************************************************************ try { ServerSocket ss = new ServerSocket(9999); // 设置服务器端口是9999 Socket s = ss.accept(); // 监听是否有客户端登陆,只有为true才会执行下面的代码 // 而且监听到的端口赋给s,s就表示连接的客户端端口 BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); /* * s是客户端端口,s.getInputStream这个方法是获取客户端的输入流,从而获取客户端发送的数据 * * 上面这一句可以写成2句话 InputStreamReader aa=new * InputStreamReader(s.getInputStream()); * * BufferedReader br=new BufferedReader(aa); 将字节流放入缓冲池 */ pw = new PrintWriter(s.getOutputStream(), true); jta.setText("客户端已接入" + "\r\n"); String aa = "已成功连接服务器"; pw.println(aa); while (true) { String xinxi = br.readLine(); jta.append("客户端:" + xinxi + "\r\n"); } } catch (Exception e) { } } public static void main(String[] args) { new Server(); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("发送")) { String xinxi = jtf.getText(); jta.append("服务器:" + xinxi + "\r\n"); pw.println(xinxi); jtf.setText(""); } } }