📄 frame1.java~73~
字号:
package chatserver;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.*;import java.io.*;import com.borland.jbcl.layout.*;public class Frame1 extends JFrame implements Runnable { JPanel contentPane; TextArea textArea1 = new TextArea(); TextField textField1 = new TextField(); Button send = new Button(); Button toexit = new Button(); ServerSocket server = null; Socket socket = null; BufferedReader in = null; PrintWriter out = null; XYLayout xYLayout1 = new XYLayout(); Label label1 = new Label(); /**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(xYLayout1); this.setResizable(false); this.setSize(new Dimension(372, 284)); this.setTitle("服务器端"); textField1.setColumns(15); textField1.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { textField1_keyPressed(e); } }); send.setActionCommand("发送"); send.setEnabled(false); send.setLabel("开始发送"); send.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { send_actionPerformed(e); } }); toexit.setLabel("退出"); toexit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { toexit_actionPerformed(e); } }); textArea1.setEditable(false); label1.setText("发送消息"); contentPane.add(textArea1, new XYConstraints(2, 0, 370, 181)); contentPane.add(send, new XYConstraints(21, 221, 95, -1)); contentPane.add(toexit, new XYConstraints(307, 222, -1, -1)); contentPane.add(label1, new XYConstraints(5, 192, 58, 16)); contentPane.add(textField1, new XYConstraints(80, 189, 273, 24)); 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) { toexit(); } } public void run() { try{ server = new ServerSocket(1258); socket = server.accept(); in = new BufferedReader (new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream()); if (socket!= null){ textArea1.append("system information: client have joined!\n"); send.setEnabled(true); } receiver r = new receiver(); Thread t = new Thread(r); t.start(); }catch(Exception e){ textArea1.append(e.toString()+"\n"); } } void toexit_actionPerformed(ActionEvent e) { toexit(); }void textField1_keyPressed(KeyEvent e) { out.println(textField1.getText()); out.flush(); textArea1.append("server information:"+textField1.getText()+"\n"); textField1.setText(""); } void send_actionPerformed(ActionEvent e) { out.println(textField1.getText()); out.flush(); textArea1.append("server information:"+textField1.getText()+"\n"); textField1.setText(""); } void toexit(){ try{ out.println("serverexit!"); out.flush(); }catch(Exception e){} finally{ System.exit(0); } } private class receiver implements Runnable{ public void run(){ String s1 = null; try{ s1 = in.readLine(); while(s1!= "clientexit!"){ textArea1.append("client information"+s1+"\n"); s1 = in.readLine(); } in.close(); out.close(); socket.close(); server.close(); }catch(Exception e){} send.setEnabled(false); //客户端已退出,禁止发送消息 } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -