📄 frame1.java
字号:
package chatclient;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.*;import java.io.*;public class Frame1 extends JFrame implements Runnable { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); TextArea textArea1 = new TextArea(); Panel panel1 = new Panel(); TextField textField1 = new TextField(); Button send = new Button(); Button link = new Button(); Button quit = new Button(); Socket socket = null; BufferedReader sin =null; PrintWriter sout =null; /**Construct the frame*/ public Frame1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setResizable(false); this.setSize(new Dimension(392, 221)); this.setTitle("聊天程序--客户端"); textField1.setColumns(15); send.setEnabled(false); send.setLabel("发送"); send.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { send_actionPerformed(e); } }); link.setLabel("连接"); link.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { link_actionPerformed(e); } }); quit.setLabel("退出"); quit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { quit_actionPerformed(e); } }); textArea1.setEditable(false); contentPane.add(textArea1, BorderLayout.CENTER); contentPane.add(panel1, BorderLayout.SOUTH); panel1.add(textField1, null); panel1.add(send, null); panel1.add(link, null); panel1.add(quit, null); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { quit(); } } public void run() { try{ socket = new Socket("LocalHost",1124); sin = new BufferedReader(new InputStreamReader(socket.getInputStream())); sout = new PrintWriter(socket.getOutputStream()); send.setEnabled(true); Receiver r = new Receiver(); Thread t = new Thread(r); t.start(); textArea1.append("系统消息:成功连接到服务器!\n"); link.setEnabled(false); }catch(Exception e){ textArea1.append(e.toString()+"\n"); } } void link_actionPerformed(ActionEvent e) { Thread thread = new Thread(this); thread.start(); } void send_actionPerformed(ActionEvent e) { sout.println(textField1.getText()); sout.flush(); textArea1.append("客户端消息:"+textField1.getText()+"\n"); textField1.setText(""); } void quit(){ try{ sout.println("ClientExits!"); sout.flush(); }catch(Exception e){} finally{ System.exit(0); } } private class Receiver implements Runnable{ public void run(){ String msg = null; try{ msg = sin.readLine(); while(msg!="ServerExits!"){ textArea1.append("服务器消息:"+msg+"\n"); msg = sin.readLine(); } sin.close(); sout.close(); socket.close(); }catch(Exception e){} send.setEnabled(false); //服务器端已退出,禁止发送消息 } } void quit_actionPerformed(ActionEvent e) { quit(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -