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

📄 lclient1.java

📁 实现简单聊天、群聊以及点对点文件传输,有兴趣的朋友可以拿去
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        jLabel3.setText("文件:");        jButton6.setText("发送文件");        jButton6.setEnabled(false);        jButton6.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton6ActionPerformed(evt);            }        });        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);        jPanel6.setLayout(jPanel6Layout);        jPanel6Layout.setHorizontalGroup(            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel6Layout.createSequentialGroup()                .addContainerGap()                .addComponent(jLabel3)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 259, javax.swing.GroupLayout.PREFERRED_SIZE)                .addGap(19, 19, 19)                .addComponent(jButton5)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, 125, Short.MAX_VALUE)                .addContainerGap())        );        jPanel6Layout.setVerticalGroup(            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel6Layout.createSequentialGroup()                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jButton5)                    .addComponent(jLabel3)                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                    .addComponent(jButton6))                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "文件接收", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("宋体", 0, 12), new java.awt.Color(0, 0, 0)));        jTextField3.setEnabled(false);        jButton7.setText("另存为:");        jButton7.setEnabled(false);        jButton7.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton7ActionPerformed(evt);            }        });        jButton8.setText("接受文件");        jButton8.setEnabled(false);        jButton8.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton8ActionPerformed(evt);            }        });        jButton9.setText("拒绝接收");        jButton9.setEnabled(false);        jButton9.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton9ActionPerformed(evt);            }        });        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);        jPanel7.setLayout(jPanel7Layout);        jPanel7Layout.setHorizontalGroup(            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel7Layout.createSequentialGroup()                .addComponent(jButton7)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE)                .addGap(18, 18, 18)                .addComponent(jButton8)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jButton9)                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        jPanel7Layout.setVerticalGroup(            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel7Layout.createSequentialGroup()                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                    .addComponent(jButton7)                    .addComponent(jButton8)                    .addComponent(jButton9))                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addGroup(layout.createSequentialGroup()                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE))                    .addGroup(layout.createSequentialGroup()                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                            .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                            .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                            .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()                                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))                .addContainerGap())        );        layout.setVerticalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                    .addGroup(layout.createSequentialGroup()                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))                    .addGroup(layout.createSequentialGroup()                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addGap(31, 31, 31)))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addGroup(layout.createSequentialGroup()                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                            .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                    .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))                .addContainerGap())        );        pack();    }// </editor-fold>//GEN-END:initComponentspublic void Message(String io){       JOptionPane.showMessageDialog(this, io,"注意!",JOptionPane.INFORMATION_MESSAGE);}static String ming,ip,ren;    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        // TODO add your handling code here:        new Thread(new Runnable() {                    public void run() {                        try {                            String username = jTextField1.getText();                            if(username.equals(""))                            {                                Message("用户昵称不能为空!");                                return;                            }                            jComboBox1.addItem("大家");                            String s = new String("当前登陆:" + username);                            DengLu.out.writeUTF(s);                                                        jLabel2.setText("  欢迎进入,祝聊天愉快!");                            jButton1.setEnabled(false);                            jTextField1.setEnabled(false);                            jButton2.setEnabled(true);                            jTextArea2.setEnabled(true);                            jTextArea1.setEnabled(true);                            jButton3.setEnabled(true);                            jComboBox1.setEnabled(true);                            jButton4.setEnabled(true);                            jTextArea3.setEnabled(true);                            jTextArea4.setEnabled(true);                            jTextField2.setEnabled(true);                            jButton5.setEnabled(true);                            jButton6.setEnabled(true);                                                   while (true) {                                String xx = null;                                xx = DengLu.in.readUTF();                                if (xx.startsWith("当前登录:")) {                                    jTextArea4.append(xx.substring(xx.indexOf(":") + 1) + " 上线了" + "\n");                                    jComboBox1.addItem(xx.substring(xx.indexOf(":") + 1));                                } else if (xx.startsWith("用户离开:")) {                                                                       jTextArea4.append(xx.substring(xx.indexOf(":") + 1) + " 离开了" + "\n");                                    jComboBox1.removeItem(xx.substring(xx.indexOf(":") + 1));                                } else if (xx.startsWith("私人聊天:")) {                                                                        try {                                        AudioStream music = new AudioStream(new FileInputStream("D:/qq/ound/msg.wav"));                                        AudioData data = music.getData (); //创建AudioData源                                        ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);                                                                                 AudioPlayer.player.start(cas); //播放                                            // AudioPlayer.player.stop(music); //停止                                           } catch (Exception e) {                                         System.out.println(e);                                        }                        // 播放声音文件不能成功,有警告!                                                                        int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);                                     int minuts = Calendar.getInstance().get(Calendar.MINUTE);                                     int second = Calendar.getInstance().get(Calendar.SECOND);                                     jTextArea1.append("时间:" + hour + ":" + minuts + ":" + second + "\n");                                      jTextArea1.append(xx.substring(xx.indexOf(":") + 1) + "\n");                                } else if (xx.startsWith("公共聊天:")) {                                    int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); //取得时间                                    int minuts = Calendar.getInstance().get(Calendar.MINUTE);                                     int second = Calendar.getInstance().get(Calendar.SECOND);                                     jTextArea2.append("时间:" + hour + ":" + minuts + ":" + second + "\n");                                     jTextArea2.append(xx.substring(xx.indexOf(":") + 1) + "\n");                                } else if (xx.startsWith("系统消息:"))                                {                                    jTextArea2.append(xx + "\n");                                }else if (xx.startsWith("注意!"))                                {                                    jButton7.setEnabled(true);                                    jButton8.setEnabled(true);                                    jButton9.setEnabled(true);                                    jTextField3.setEnabled(true);                                                                        jTextArea1.append(xx);                                    ren = xx.substring(xx.indexOf("!") + 1, xx.indexOf("传送文件:"));                                    ming = xx.substring(xx.lastIndexOf(":") + 1,xx.lastIndexOf(" "));                                } else if (xx.startsWith("文件来源:"))                                {                                    ip = xx.substring(xx.indexOf(":") + 1);                                } else if (xx.startsWith("文件传输完成!"))                                {                                    Message(xx);                                }                                else if (xx.startsWith("对方拒绝接收!"))                                {                                    //buf = null; //清空数组                                    jTextArea1.append(xx + "\n");                                }                                else if (xx.startsWith("开始接收!"))                                {                                   jTextArea1.append("对方同意接收,开始传输文件..." + "\n");                                }                            }                        } catch (IOException ex) {                            Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex);                        }                    }                }).start();    }//GEN-LAST:event_jButton1ActionPerformed    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed        // TODO add your handling code here:        try {            String username = jTextField1.getText();            String s = new String("用户离开:" + username);            DengLu.out.writeUTF(s);                                                   } catch (IOException ex) {            Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex);        } finally        {           new DengLu().setVisible(true);

⌨️ 快捷键说明

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