📄 lclient1.java
字号:
this.dispose(); } }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // TODO add your handling code here: new Thread(new Runnable() { public void run() { try { String username = jTextField1.getText(); String people = (String) jComboBox1.getSelectedItem();//取得发送对象 if (people.equals("大家")) { DengLu.out.writeUTF("公共聊天:" + username + ">" + jTextArea3.getText()); jTextArea3.setText(null); } else { DengLu.out.writeUTF("私人聊天:" + username + ">" + jTextArea3.getText() + "*" + people); 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(username + ">" + jTextArea3.getText() + "\n"); jTextArea3.setText(null); } } catch (IOException ex) { Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex); } } }).start(); }//GEN-LAST:event_jButton3ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed // TODO add your handling code here: System.exit(0); }//GEN-LAST:event_jButton4ActionPerformed private void jTextArea3KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextArea3KeyPressed // TODO add your handling code here: if ((evt.getKeyCode()) == (KeyEvent.VK_ENTER)) { new Thread(new Runnable() { public void run() { try { String username = jTextField1.getText(); String people = (String) jComboBox1.getSelectedItem();//取得发送对象 if (people.equals("大家")) { DengLu.out.writeUTF("公共聊天:" + username + ">" + jTextArea3.getText()); jTextArea3.setText(null); //发送消息后自动清空信息框 } else { DengLu.out.writeUTF("私人聊天:" + username + ">" + jTextArea3.getText() + "*" + people); 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(username + ">" + jTextArea3.getText() + "\n"); jTextArea3.setText(null); } } catch (IOException ex) { Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex); } } }).start(); } }//GEN-LAST:event_jTextArea3KeyPressed private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed // TODO add your handling code here: new Thread(new Runnable() { public void run() { try { // TODO add your handling code here: if(jTextField2.getText().equals("")) { Message("请选择你要传输的文件!"); return; }else if(jComboBox1.getSelectedItem().equals("大家")) { Message("不能将文件同时传输给在线用户!"); return; }else if(jComboBox1.getSelectedItem().equals(jTextField1.getText())) { Message("文件不能传输给自己!"); return; } File file = new File(jTextField2.getText()); FileInputStream f = new FileInputStream(file); String s = new String("文件传送!" + jTextField1.getText() + "*" + jComboBox1.getSelectedItem() + "*" + jTextField2.getText() + ">" + InetAddress.getLocalHost()); DengLu.out.writeUTF(s); jTextArea1.append("发送文件给用户:" + jComboBox1.getSelectedItem() + "\n"); //创建网络服务器接受客户请求 ServerSocket ss = new ServerSocket(1111); Socket client = ss.accept(); //创建网络输出流并提供数据包装器 OutputStream Out = client.getOutputStream(); OutputStream a = new DataOutputStream(new BufferedOutputStream(Out)); //创建文件读取缓冲区 byte[] buf = new byte[2048]; int num = f.read(buf); while(num != (-1)){//是否读完文件 a.write(buf,0,num);//把文件数据写到数组缓冲区 a.flush();//刷新缓冲区把数据写往接收端 num = f.read(buf);//继续从文件中读取数据 } ss.close(); f.close(); a.close(); }catch(IOException ex){ Message("文件传输失败!"); return; } } }).start(); }//GEN-LAST:event_jButton6ActionPerformed private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed // TODO add your handling code here: new Thread(new Runnable() { public void run() { try { // TODO add your handling code here: String a = new String("开始接收!" + ren); DengLu.out.writeUTF(a); String I = ip.substring(ip.lastIndexOf("/") + 1);//ip = china-e2ffebca8/192.168.1.104 InetAddress IP = InetAddress.getByName(I); // 通过Socket连接文件服务器 Socket s=new Socket(IP,1111); //创建网络接受流接受服务器文件数据 InputStream In=s.getInputStream(); InputStream in=new DataInputStream(new BufferedInputStream(In)); File file=new File(jTextField3.getText() + ming); file.createNewFile();//创建文件 RandomAccessFile f=new RandomAccessFile(file,"rw"); //创建缓冲区缓冲网络数据 byte[] buf=new byte[2048]; int num=in.read(buf); jButton7.setEnabled(false); jButton8.setEnabled(false); jButton9.setEnabled(false); jTextField3.setEnabled(false); String b = new String("同意接收!" + ren); DengLu.out.writeUTF(b); jTextArea1.append("文件传输中,请稍候..." + "\n"); while(num!=(-1)){//是否读完所有数据 f.write(buf,0,num);//将数据写往文件 f.skipBytes(num);//顺序写文件字节 num=in.read(buf);//继续从网络中读取文件 } Message("文件接收完成!"); String str = new String("发送完成!" + ren); DengLu.out.writeUTF(str); in.close(); f.close(); } catch (IOException ex) { Message("没有需要接收的文件!"); return; } } }).start(); }//GEN-LAST:event_jButton8ActionPerformed private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed // TODO add your handling code here: String wenjian; int ii = jFileChooser1.showSaveDialog(this); if(ii == jFileChooser1.APPROVE_OPTION) { wenjian =jFileChooser1.getCurrentDirectory() + "\\" + jFileChooser1.getSelectedFile().getName(); jTextField2.setText(wenjian); jTextField2.setEnabled(false); } }//GEN-LAST:event_jButton5ActionPerformed private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed // TODO add your handling code here: String lujing; int ii = jFileChooser2.showSaveDialog(this); if(ii == jFileChooser2.APPROVE_OPTION) { lujing =jFileChooser2.getSelectedFile().getPath() + "\\"; jTextField3.setText(lujing); jTextField3.setEnabled(false); } }//GEN-LAST:event_jButton7ActionPerformed private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed try { String s = new String("拒绝接收!" + ren); DengLu.out.writeUTF(s); jButton7.setEnabled(false); jButton8.setEnabled(false); jButton9.setEnabled(false); jTextField3.setEnabled(false); } catch (IOException ex) {//GEN-LAST:event_jButton9ActionPerformed Logger.getLogger(LClient1.class.getName()).log(Level.SEVERE, null, ex); } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new LClient1().setVisible(false); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JButton jButton6; private javax.swing.JButton jButton7; private javax.swing.JButton jButton8; private javax.swing.JButton jButton9; private javax.swing.JComboBox jComboBox1; private javax.swing.JFileChooser jFileChooser1; private javax.swing.JFileChooser jFileChooser2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextArea jTextArea2; private javax.swing.JTextArea jTextArea3; private javax.swing.JTextArea jTextArea4; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -