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

📄 transfilepanel.java

📁 这是一个能够实现文件传输的用java开发的源程序
💻 JAVA
字号:
package daen.graduate.trans;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import java.awt.*;

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class TransFilePanel extends JPanel {
    int status;
    boolean fileSender = false;
    boolean isClosed = false;
    String fileName;
    boolean isConfirm = false;
    boolean isCanneled=false;
    long transFileLength=0;
    
    //添加的变量--------------------
    JFrame frm;
    int flag;
    File f;
    JProgressBar jpgbFileTrans = new JProgressBar();
    JButton jbtnOK = new JButton();
    JButton jbtnCannel = new JButton();
    JTextArea jtaFileTransStatus = new JTextArea();
    public TransFilePanel(boolean fileSender) {
        this.fileSender = fileSender;
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.setLayout(null);
        jpgbFileTrans.setBounds(new Rectangle(19, 104, 209, 18));
        jbtnOK.setBackground(new Color(236, 247, 255));
        jbtnOK.setBounds(new Rectangle(233, 101, 67, 25));
        jbtnOK.setText("接收");
        jbtnOK.addActionListener(new TransFilePanel_jbtnOK_actionAdapter(this));
        jbtnCannel.setBackground(new Color(236, 247, 255));
        jbtnCannel.setBounds(new Rectangle(306, 101, 67, 25));
        jbtnCannel.setText("取消");
        jbtnCannel.addActionListener(new TransFilePanel_jbtnCannel_actionAdapter(this));
        this.setBackground(new Color(206, 227, 249));
        this.setBorder(BorderFactory.createEtchedBorder());
        jtaFileTransStatus.setBackground(new Color(206, 227, 249));
        jtaFileTransStatus.setDisabledTextColor(Color.orange);
        jtaFileTransStatus.setText("");
        jtaFileTransStatus.setWrapStyleWord(true);
        jtaFileTransStatus.setBounds(new Rectangle(20, 33, 345, 55));
        this.add(jpgbFileTrans);
        this.add(jbtnOK);
        this.add(jbtnCannel);
        this.add(jtaFileTransStatus);
        jpgbFileTrans.setVisible(false);
        jbtnOK.setVisible(false);
    }

    public void setStatus(int status) {
        this.status = status;
        switch (status) {
        case SocketThread.FILE_TRANS_STATUS_FILENAME: {
            jbtnOK.setVisible(false);
            jbtnCannel.setVisible(false);
            break;
        }
        case SocketThread.FILE_TRANS_STATUS_WAITFORCONFIRM: {
            if (fileSender) {
                jbtnOK.setVisible(false);
                jbtnCannel.setVisible(true);
                jpgbFileTrans.setVisible(false);
            } else {
                jbtnOK.setVisible(true);
                jbtnCannel.setVisible(true);
                jpgbFileTrans.setVisible(false);
            }
            break;
        }
        case SocketThread.FILE_TRANS_STATUS_CONTEXT: {
            jbtnOK.setVisible(false);
            jbtnCannel.setVisible(true);
            jpgbFileTrans.setVisible(true);
            break;
        }
        case SocketThread.FILE_TRANS_STATUS_SUCCESS:
        case SocketThread.FILE_TRANS_STATUS_FAIL: {
            jbtnCannel.setText("关闭");
            jbtnOK.setVisible(false);
            jbtnCannel.setVisible(true);
            jpgbFileTrans.setVisible(false);
            break;
        }
        }
    }

    public int getStatus() {
        return status;
    }

    public void jbtnOK_actionPerformed(ActionEvent e){
       /* JFileChooser jfc = new JFileChooser();
        jfc.setFileSelectionMode( JFileChooser.CANCEL_OPTION);
        File aFile;
        jfc.showSaveDialog(this);
        aFile = jfc.getSelectedFile();
       if (aFile != null) {
            fileName = jfc.getSelectedFile().getAbsolutePath();
        	//fileName = aFile.getName();
            isConfirm = true;
        }*/
        
      
        //设置保存文件对话框的标题   
    	JFileChooser fc = new JFileChooser();
        fc.setDialogTitle("保存文件");  
       
        //这里将显示保存文件的对话框    
        try{     
               flag=fc.showSaveDialog(frm);  
               fc.setFileSelectionMode(JFileChooser.APPROVE_OPTION);
        }    
        catch(HeadlessException he){    
             System.out.println("保存文件出错!");     
        }    
        //如果按下确定按钮,则获得该文件。    
        if(flag==JFileChooser.APPROVE_OPTION)    
            {    
              //获得你输入要保存的文件    
               f=fc.getSelectedFile();    
               //获得文件名    
               fileName=fc.getName(f);    
               //也可以使用fileName=f.getName(); 
      try
      {
       FileWriter fw=new FileWriter(f);
                  fw.write("111111");
                  fw.close();
      }
      catch (IOException ef)
      {}
             }    
      
    }

    public void jbtnCannel_actionPerformed(ActionEvent e) {
        if(jbtnCannel.getText().equals("取消")){
            isCanneled=true;
        }
        else{
            isClosed=true;
        }
    }
}


class TransFilePanel_jbtnCannel_actionAdapter implements ActionListener {
  
   private TransFilePanel adaptee;
    TransFilePanel_jbtnCannel_actionAdapter(TransFilePanel adaptee) {
        this.adaptee = adaptee;
    }

   public void actionPerformed(ActionEvent e) {
        adaptee.jbtnCannel_actionPerformed(e);
    }
	
	
}


class TransFilePanel_jbtnOK_actionAdapter implements ActionListener {
    private TransFilePanel adaptee;
    TransFilePanel_jbtnOK_actionAdapter(TransFilePanel adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jbtnOK_actionPerformed(e);
    }
}

⌨️ 快捷键说明

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