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

📄 mainwin.java

📁 用java写的聊天系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * MainWin.java * * Created on 2005年12月19日, 下午3:51 */package javaicqproj;/** * * @author  hurysa */import java.util.*;import java.io.*;import java.net.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MainWin extends javax.swing.JFrame implements Runnable{    String server;    int serport;    Thread thread;    String myname;    int myjicq;    int sendport;    FriendListView list=new FriendListView();    FriendInfoModel friendinfoModel=new FriendInfoModel();    FriendListView alllist=new FriendListView();    FriendInfoModel findfriendinfoModel=new FriendInfoModel();    ChatFrame cf;    boolean cfIsCreated=false;    InetAddress group=null;    int multiport=6666;//组播消息端口    byte ttl=(byte)1;    MulticastSocket ms=null;    DatagramPacket receivePacket;    private boolean endthread=false;    /** Creates new form MainWin */    public MainWin(String myname,int myicq,String server,int serport,int sendport) {//主程序构造函数        this.myname=myname;        this.myjicq=myicq;        this.server=server;        this.serport=serport;        this.sendport=sendport;        initComponents();        jMyJicq.setText(myname+"("+Integer.toString(myjicq)+")");        jMyStatus.setText("状态:上线");        friendinfoModel.addObserver(list);        findfriendinfoModel.addObserver(alllist);        try{            group=InetAddress.getByName("225.0.0.1");            this.onLine();            this.ConnectServer(myjicq);            thread=new Thread(this);            thread.start();                    }        catch(Exception exc){            exc.printStackTrace();        }        list.addMouseListener(new MouseListener(){            public void mouseClicked(MouseEvent e){                if(e.getClickCount()==2) {//double clicked                    FriendListView v=(FriendListView)e.getSource();                    int index=v.getSelectedIndex();                    if(index==-1)return;                    String name=friendinfoModel.getFriendNames().get(index).toString();                    String status=friendinfoModel.getFriendStatus().get(index).toString();                    String ip=friendinfoModel.getFriendIp().get(index).toString();                    cf=new ChatFrame(friendinfoModel.getMyName(),name,status,ip,                            friendinfoModel.getMyUdpPort(),                            Integer.parseInt(friendinfoModel.getFriendSendport().get(index).toString()));                    cfIsCreated=true;                }            }            public void mouseEntered(MouseEvent e){}            public void mouseExited(MouseEvent e){}            public void mousePressed(MouseEvent e){}            public void mouseReleased(MouseEvent e){}        });    }        /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents    private void initComponents() {        jFindFriendDialog = new javax.swing.JDialog();        jLabel1 = new javax.swing.JLabel();        jPanel3 = new javax.swing.JPanel();        jAddFriendButton = new javax.swing.JButton();        jCancelButton = new javax.swing.JButton();        jScrollPane2 = new javax.swing.JScrollPane();        jScrollPane2.setViewportView(alllist);        jPanel1 = new javax.swing.JPanel();        jFindButton = new javax.swing.JButton();        jDeleteButton = new javax.swing.JButton();        jPanel2 = new javax.swing.JPanel();        jMyJicq = new javax.swing.JLabel();        jMyStatus = new javax.swing.JLabel();        jScrollPane1 = new javax.swing.JScrollPane();        jScrollPane1.setViewportView(list);        jFindFriendDialog.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);        jFindFriendDialog.setTitle("\u7528\u6237\u4fe1\u606f");        jLabel1.setFont(new java.awt.Font("黑体", 0, 18));        jLabel1.setForeground(new java.awt.Color(102, 153, 255));        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);        jLabel1.setText("\u4ee5\u6ce8\u518c\u7528\u6237\u5217\u8868");        jFindFriendDialog.getContentPane().add(jLabel1, java.awt.BorderLayout.NORTH);        jPanel3.setLayout(new java.awt.GridLayout(1, 0));        jAddFriendButton.setText("\u52a0\u4e3a\u597d\u53cb");        jAddFriendButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jAddFriendButtonActionPerformed(evt);            }        });        jPanel3.add(jAddFriendButton);        jCancelButton.setText("\u53d6\u6d88");        jCancelButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jCancelButtonActionPerformed(evt);            }        });        jPanel3.add(jCancelButton);        jFindFriendDialog.getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH);        jFindFriendDialog.getContentPane().add(jScrollPane2, java.awt.BorderLayout.CENTER);        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        setTitle("Jicq GWS");        addWindowListener(new java.awt.event.WindowAdapter() {            public void windowClosing(java.awt.event.WindowEvent evt) {                formWindowClosing(evt);            }        });        jPanel1.setLayout(new java.awt.GridLayout(2, 0));        jFindButton.setText("\u6dfb\u52a0\u597d\u53cb");        jFindButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jFindButtonActionPerformed(evt);            }        });        jPanel1.add(jFindButton);        jDeleteButton.setText("\u5220\u9664\u597d\u53cb");        jDeleteButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jDeleteButtonActionPerformed(evt);            }        });        jPanel1.add(jDeleteButton);        getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);        jPanel2.setLayout(new java.awt.GridLayout(1, 0, 3, 0));        jMyJicq.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);        jMyJicq.setText("\u6211\u7684Jicq");        jPanel2.add(jMyJicq);        jMyStatus.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);        jMyStatus.setText("\u6211\u7684\u72b6\u6001");        jPanel2.add(jMyStatus);        getContentPane().add(jPanel2, java.awt.BorderLayout.NORTH);        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);        pack();    }    // </editor-fold>//GEN-END:initComponents    private void jCancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCancelButtonActionPerformed// TODO add your handling code here:        jFindFriendDialog.dispose();    }//GEN-LAST:event_jCancelButtonActionPerformed    private void jAddFriendButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jAddFriendButtonActionPerformed        int index=alllist.getSelectedIndex();        if(index==-1)return;        String friendjicq=findfriendinfoModel.getFriendIcqno().get(index).toString();        //判断当前选定的用户是否以被加为自己的好友        for(int i=0;i<friendinfoModel.getFriendNum();i++){            if(friendjicq.equals(friendinfoModel.getFriendIcqno().get(i))){                JOptionPane.showMessageDialog(this,"您已经添加了该用户!");                return;            }        }        try{            Socket socket=new Socket(InetAddress.getByName(server),serport);//连接服务器                        BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));            PrintWriter out=new PrintWriter(new BufferedWriter(                    new OutputStreamWriter(socket.getOutputStream())),true);                      out.println("addfriend");            out.println(friendjicq);            out.println(myjicq);            String friendname=" ";            String friendicqno,friendstatus,friendip,friendinfo,friendpic,friendsex,friendemail,friendplace;

⌨️ 快捷键说明

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