教育路上
摘要:java在線聊天室chart類的創建。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。
2021-06-29 11:53網絡推薦
package aaa; import java.awt.*; import java.awt.event.*; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import javax.swing.*; public class chart extends JFrame { //定義全局變量或成員變量 private JButton send=new JButton("發送"); private JTextArea inputTextArea=new JTextArea(5,50); private JTextArea showTextArea=new JTextArea(10,50); private JComboBox userlist=new JComboBox(); private JPanel up=new JPanel(); private JPanel center=new JPanel(); private JPanel down=new JPanel(); private Socket client; private InetAddress ips; private int ports=8080; private String user; chart(String user){ this.user=user; gui();//圖形 listion();//第一次連接服務器 flashuser();//等服務器發信息給客戶 send();//發送聊天記錄 } //圖形界面 void gui(){ JFrame f=new JFrame("聊天室"); f.setSize(800,400); f.setLocation(300,200); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setLayout(new BorderLayout()); f.add(up,BorderLayout.NORTH); f.add(down,BorderLayout.SOUTH); f.add(center,BorderLayout.CENTER); up.add(new JScrollPane(showTextArea)); showTextArea.setEditable(false); center.add(inputTextArea); down.add(userlist); down.add(send); userlist.addItem("所有人"); f.setVisible(true); } //連接服務器 void listion(){ try { ips=InetAddress.getByName("127.0.0.1"); client=new Socket(ips,ports); PrintWriter writer = new PrintWriter(client.getOutputStream()); String a=user+"@@"+"reg"; writer.println(a); writer.flush(); }catch(Exception e1) { e1.printStackTrace(); } } void flashuser(){ new Thread() { public void run() { while(true) { System.out.println(client); if(client!=null) { try { BufferedReader r = new BufferedReader(new InputStreamReader(client.getInputStream())); String line=r.readLine(); String[] arr=line.split("@"); //null@aaaa@userlist if(arr[arr.length-1].equals("userlist")) { for(String user:arr) { if(!user.equals("null")&&!user.equals("userlist")) { userlist.addItem(user); } } }else if(arr[arr.length-1].equals("群發聊天")) { showTextArea.append(arr[0]+arr[1]+"\n"); }else { showTextArea.append(arr[0]+arr[1]+arr[2]+"\n"); } }catch(Exception e) { e.printStackTrace(); } } } } }.start(); } void send() { //發送聊天內容 send.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { PrintWriter writer = new PrintWriter(client.getOutputStream()); String a=user+"@"+inputTextArea.getText()+"@"+userlist.getSelectedItem(); writer.println(a); writer.flush(); } catch (Exception e1) { e1.printStackTrace(); } } }); } public static void main(String[] args) { new chart("zhangsan"); } }
訪客的評論 2023/11/08 20:45
文中描述的是準確的嗎,如何報名!