⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 局域网内实现的五子棋和简单的聊天工具。
💻 JAVA
字号:
package udpclient;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.net.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 */public class MainFrame extends JFrame {  DatagramSocket socket;  byte[] buf=new byte[1000];  DatagramPacket dp=new DatagramPacket(buf,buf.length);  InetAddress serverHost;  int serverPort;  JPanel contentPane;  JLabel jLabel1 = new JLabel();  JLabel jLabel2 = new JLabel();  JTextField jTextField1 = new JTextField();  JTextField jTextField2 = new JTextField();  JButton jButton1 = new JButton();  JButton jButton2 = new JButton();  JTextField jTextField3 = new JTextField();  JScrollPane jScrollPane1 = new JScrollPane();  JTextArea jTextArea1 = new JTextArea();  //Construct the frame  public MainFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    jLabel1.setFont(new java.awt.Font("Dialog", 0, 14));    jLabel1.setText("服务器IP");    jLabel1.setBounds(new Rectangle(14, 17, 72, 26));    contentPane.setLayout(null);    this.setSize(new Dimension(405, 300));    this.setTitle("UDP-客户端");    jLabel2.setBounds(new Rectangle(185, 17, 41, 26));    jLabel2.setText("端口");    jLabel2.setFont(new java.awt.Font("Dialog", 0, 14));    jTextField1.setFont(new java.awt.Font("Dialog", 0, 14));    jTextField1.setText("127.0.0.1");    jTextField1.setBounds(new Rectangle(73, 17, 100, 26));    jTextField2.setBounds(new Rectangle(220, 17, 49, 26));    jTextField2.setText("6544");    jTextField2.setFont(new java.awt.Font("Dialog", 0, 14));    jButton1.setBounds(new Rectangle(280, 17, 106, 26));    jButton1.setFont(new java.awt.Font("Dialog", 0, 14));    jButton1.setText("连接服务器");    jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this));    jButton2.setText("发送信息");    jButton2.addActionListener(new MainFrame_jButton2_actionAdapter(this));    jButton2.setFont(new java.awt.Font("Dialog", 0, 14));    jButton2.setBounds(new Rectangle(280, 53, 106, 26));    jTextField3.setBounds(new Rectangle(14, 53, 254, 26));    jTextField3.setText("hello");    jTextField3.setFont(new java.awt.Font("Dialog", 0, 14));    jScrollPane1.setBounds(new Rectangle(13, 86, 370, 177));    jTextArea1.setText("");    contentPane.add(jLabel1, null);    contentPane.add(jTextField1, null);    contentPane.add(jLabel2, null);    contentPane.add(jTextField2, null);    contentPane.add(jButton1, null);    contentPane.add(jTextField3, null);    contentPane.add(jButton2, null);    contentPane.add(jScrollPane1, null);    jScrollPane1.getViewport().add(jTextArea1, null);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  class ReadMessageThread extends Thread{        public void run(){                while(true){                        try{                                socket.receive(dp);                           } catch (IOException e1) {   //捕捉可能产生的异常                                   jTextArea1.append("读端口信息出错\n");                           }                        String rcvd=new String(dp.getData(),0,dp.getLength());                        InetAddress ip=dp.getAddress();                        int port=dp.getPort();                        rcvd=rcvd+",from address:"+ip+",prot:"+port;                        jTextArea1.append("从服务器端读入如下的信息:"+rcvd+"\n");                }        }}  void jButton1_actionPerformed(ActionEvent e) {    try{            serverHost=InetAddress.getByName(jTextField1.getText());    }catch(IOException e1){                  jTextArea1.append("IP地址出错\n");       }    serverPort=Integer.parseInt(jTextField2.getText());try {        socket=new DatagramSocket();        jTextArea1.append("系统提示:客户端数据报套接字建立\n");     } catch (IOException e2) {   //捕捉可能产生的异常        jTextArea1.append("端口打开出错\n");    }    if (socket != null) {      ReadMessageThread readThread=new ReadMessageThread();      readThread.start();    }  }  void jButton2_actionPerformed(ActionEvent e) {    if (socket != null) {            String str=jTextField3.getText();            jTextArea1.append("向服务器发送如下的信息:"+str+"\n");            buf=str.getBytes();            dp=new DatagramPacket(buf,buf.length,serverHost,serverPort);            try{                    socket.send(dp);        } catch (IOException e3) {   //捕捉可能产生的异常                jTextArea1.append("发送信息出错\n");          }    }}}class MainFrame_jButton1_actionAdapter implements java.awt.event.ActionListener {  MainFrame adaptee;  MainFrame_jButton1_actionAdapter(MainFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jButton1_actionPerformed(e);  }}class MainFrame_jButton2_actionAdapter implements java.awt.event.ActionListener {  MainFrame adaptee;  MainFrame_jButton2_actionAdapter(MainFrame adaptee) {    this.adaptee = adaptee;  }  public void actionPerformed(ActionEvent e) {    adaptee.jButton2_actionPerformed(e);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -