📄 frame1.java~58~
字号:
package chatserver;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 quit = new Button(); ServerSocket serverSocket = null; Socket socket = null; BufferedReader cin = null; PrintWriter cout = 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(372, 284)); 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); } }); 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(quit, null); Thread thread = new Thread(this); thread.start(); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { quit();// System.exit(0); } } public void run() { try{ serverSocket = new ServerSocket(1124); socket = serverSocket.accept(); cin = new BufferedReader (new InputStreamReader(socket.getInputStream())); cout = new PrintWriter(socket.getOutputStream()); if (socket!= null){ textArea1.append("系统消息:客户端成功接入!\n"); send.setEnabled(true); } Receiver r = new Receiver(); Thread t = new Thread(r); t.start(); }catch(Exception e){ textArea1.append(e.toString()+"\n"); } } void quit_actionPerformed(ActionEvent e) { quit();// System.exit(0); } void send_actionPerformed(ActionEvent e) { cout.println(textField1.getText()); cout.flush(); textArea1.append("Sever:"+textField1.getText()+"\n"); textField1.setText(""); } void quit(){ try{ cout.println("ServerExits!"); cout.flush(); }catch(Exception e){// textArea1.append(e.toString()); } finally{ System.exit(0); } } private class Receiver implements Runnable{ public void run(){ String msg = null; try{ msg = cin.readLine(); while(msg!= "ClientExits!"){ textArea1.append("Client:"+msg+"\n"); msg = cin.readLine(); } cin.close(); cout.close(); socket.close(); serverSocket.close(); send.setEnabled(false); //客户端已退出,禁止发送消息 }catch(Exception e){ textArea1.append(e.toString()+"\n"); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -