Java FTP客户端(未完整)

来源:互联网 发布:oracle12c容器数据库 编辑:程序博客网 时间:2024/05/21 17:12

用Swing做了一个GUI界面,(不过Jtree还没有实现,没有用过,需要研究研究),后台连接server只做了个大概,不过实现应该非常方便,主要是GUI界面的JTree的实现,以tree的方式把文件目录列出来(图贴不上来,NND,网速太慢)

package com.hukefeng.project.ftp;

 

import java.awt.Rectangle;

import java.io.IOException;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.JTree;

import javax.swing.SwingUtilities;

 

import com.enterprisedt.net.ftp.FTPClient;

import com.enterprisedt.net.ftp.FTPConnectMode;

import com.enterprisedt.net.ftp.FTPException;

import com.enterprisedt.net.ftp.FTPTransferType;

import java.awt.Dimension;

import javax.swing.JTextArea;

 

public class SwingFrameFTPClient extends JFrame {

 

    private static final long serialVersionUID = 1L;

 

    private JPanel jContentPane = null;

 

    private JTextField jTextField = null;

 

    private JButton jButton = null;

 

    private JLabel jLabel = null;

 

    private JTextField jTextFieldPort = null;

 

    private JTree jTree = null;

 

    private JTree jTree1 = null;

 

    /**

     * This method initializes jTextField 

     *

     * @return javax.swing.JTextField 

     */

    private JTextField getJTextField() {

       if (jTextField == null) {

           jTextField = new JTextField();

           jTextField.setBounds(new Rectangle(103, 55, 127, 24));

           jTextField.setText("192.168.18.128");

       }

       return jTextField;

    }

 

    private JTextField Username = null;

 

    private JTextField password = null;

 

    private JLabel jLabel1 = null;

 

    private JLabel jLabel2 = null;

 

    private JLabel jLabel3 = null;

 

    //  FTP server address and Port is defined

    //Username and Password is defined

    private String FTPServerAddr = this.getJTextField().getText().trim();

 

    private int FTPServerPort = Integer.parseInt(this.getJTextFieldPort()

           .getText().trim()); //  @jve:decl-index=0:

 

    private String UserName = this.getUsername().getText().trim();

 

    private String Password = this.getPassword().getText().trim();

 

    private JLabel Top = null;

 

    private JButton Upload = null;

 

    private JLabel jLabel4 = null;

 

    private JLabel jLabel5 = null;

 

    private JButton download = null;

 

    private JTextArea TextArea = null;

 

    private JButton getJButton() {

       if (jButton == null) {

           jButton = new JButton();

           jButton.setBounds(new Rectangle(465, 55, 106, 24));

           jButton.setText("Connect");

           jButton.addActionListener(new java.awt.event.ActionListener() {

              public void actionPerformed(java.awt.event.ActionEvent e) {

 

                  //FTP Client is performed

 

                  FTPClient ftpc = new FTPClient();

 

                  try {

 

                     ftpc.setRemoteHost(FTPServerAddr);

                     ftpc.setRemotePort(FTPServerPort);

                     //Connect to FTP server

                     System.out.println("TTTTTTTTTTTTTTTTtt");

                     ftpc.connect();

                     System.out.println("connected");

                     /**

                      * 这里需要优化

                      */

                     StringBuffer sb = new StringBuffer();

                     //  SwingFrameFTPClient sfc=new SwingFrameFTPClient();

 

                     //////////////

                     ftpc.login(UserName, Password);

                     ftpc.setConnectMode(FTPConnectMode.PASV);

                     ftpc.setType(FTPTransferType.ASCII);

 

                     String[] CurrDir = ftpc.dir(".", true);

                     for (String FileTemp : CurrDir) {

                         System.out

                                .println("File in Directory: " + FileTemp);

                         sb.append(FileTemp).append(

                                System.getProperty("line.separator"));

                     }

 

                     getTextArea().setText(sb.toString());

 

                     ftpc.quit();

                  } catch (IOException ex) {

                     // TODO Auto-generated catch block

                     ex.printStackTrace();

                  } catch (FTPException ex2) {

                     // TODO Auto-generated catch block

                     ex2.printStackTrace();

                     int code = ex2.getReplyCode();

                     System.out.println("Error reply code is: " + code);

                  }

 

              }

           });

       }

       return jButton;

    }

 

    /**

     * This method initializes jTextFieldPort

     *

     * @return javax.swing.JTextField 

     */

    private JTextField getJTextFieldPort() {

       if (jTextFieldPort == null) {

           jTextFieldPort = new JTextField();

           jTextFieldPort.setBounds(new Rectangle(353, 55, 27, 24));

           jTextFieldPort.setText("21");

       }

       return jTextFieldPort;

    }

 

    /**

     * This method initializes jTree  

     *

     * @return javax.swing.JTree

     */

    private JTree getJTree() {

       if (jTree == null) {

           jTree = new JTree();

           jTree.setBounds(new Rectangle(19, 175, 187, 154));

       }

       return jTree;

    }

 

    /**

     * This method initializes jTree1 

     *

     * @return javax.swing.JTree

     */

    private JTree getJTree1() {

       if (jTree1 == null) {

           jTree1 = new JTree();

           jTree1.setBounds(new Rectangle(440, 178, 187, 154));

       }

       return jTree1;

    }

 

    /**

     * This method initializes Username

     *

     * @return javax.swing.JTextField 

     */

    private JTextField getUsername() {

       if (Username == null) {

           Username = new JTextField();

           Username.setBounds(new Rectangle(103, 97, 86, 18));

           Username.setText("admin");

       }

       return Username;

    }

 

    /**

     * This method initializes password

     *

     * @return javax.swing.JTextField 

     */

    private JTextField getPassword() {

       if (password == null) {

           password = new JTextField();

           password.setBounds(new Rectangle(363, 97, 92, 18));

           password.setText("admin");

       }

       return password;

    }

 

    /**

     * This method initializes Upload 

     *

     * @return javax.swing.JButton 

     */

    private JButton getUpload() {

       if (Upload == null) {

           Upload = new JButton();

           Upload.setBounds(new Rectangle(265, 183, 108, 22));

           Upload.setText("upload-->>>");

           Upload.addActionListener(new java.awt.event.ActionListener() {

              public void actionPerformed(java.awt.event.ActionEvent e) {

                  System.out.println("getUpload()"); // TODO Auto-generated Event stub actionPerformed()

              }

           });

       }

       return Upload;

    }

 

    /**

     * This method initializes download

     *

     * @return javax.swing.JButton 

     */

    private JButton getDownload() {

       if (download == null) {

           download = new JButton();

           download.setBounds(new Rectangle(268, 282, 108, 22));

           download.setText("<<-download");

           download.addActionListener(new java.awt.event.ActionListener() {

              public void actionPerformed(java.awt.event.ActionEvent e) {

                  System.out.println("getDownload");

              }

           });

       }

       return download;

    }

 

    /**

     * This method initializes TextArea

     *

     * @return javax.swing.JTextArea  

     */

    private JTextArea getTextArea() {

       if (TextArea == null) {

           TextArea = new JTextArea();

           TextArea.setBounds(new Rectangle(16, 339, 628, 175));

       }

       return TextArea;

    }

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       SwingUtilities.invokeLater(new Runnable() {

           public void run() {

              SwingFrameFTPClient thisClass = new SwingFrameFTPClient();

              thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

              thisClass.setVisible(true);

           }

       });

    }

 

    /**

     * This is the default constructor

     */

    public SwingFrameFTPClient() {

       super();

       initialize();

    }

 

    /**

     * This method initializes this

     *

     * @return void

     */

    private void initialize() {

       this.setSize(686, 559);

       this.setContentPane(getJContentPane());

       this.setTitle("SwingFTPClient");

    }

 

    /**

     * This method initializes jContentPane

     *

     * @return javax.swing.JPanel

     */

    private JPanel getJContentPane() {

       if (jContentPane == null) {

           jLabel5 = new JLabel();

           jLabel5.setBounds(new Rectangle(464, 141, 107, 25));

           jLabel5.setText("Server File System");

           jLabel4 = new JLabel();

           jLabel4.setBounds(new Rectangle(46, 142, 107, 25));

           jLabel4.setText("Local File System");

           Top = new JLabel();

           Top.setBounds(new Rectangle(283, 18, 63, 34));

           Top.setText("FTP Client");

           jLabel3 = new JLabel();

           jLabel3.setBounds(new Rectangle(295, 59, 38, 20));

           jLabel3.setText("Port");

           jLabel2 = new JLabel();

           jLabel2.setBounds(new Rectangle(272, 97, 77, 18));

           jLabel2.setText("Password");

           jLabel1 = new JLabel();

           jLabel1.setBounds(new Rectangle(11, 97, 70, 18));

           jLabel1.setText("Username");

           jLabel = new JLabel();

           jLabel.setBounds(new Rectangle(11, 55, 70, 24));

           jLabel.setText("IP Address");

           jContentPane = new JPanel();

           jContentPane.setLayout(null);

           jContentPane.add(getJTextField(), null);

           jContentPane.add(getJButton(), null);

           jContentPane.add(jLabel, null);

           jContentPane.add(getJTextFieldPort(), null);

           jContentPane.add(getJTree(), null);

           jContentPane.add(getJTree1(), null);

           jContentPane.add(getUsername(), null);

           jContentPane.add(getPassword(), null);

           jContentPane.add(jLabel1, null);

           jContentPane.add(jLabel2, null);

           jContentPane.add(jLabel3, null);

           jContentPane.add(Top, null);

           jContentPane.add(getUpload(), null);

           jContentPane.add(jLabel4, null);

           jContentPane.add(jLabel5, null);

           jContentPane.add(getDownload(), null);

           jContentPane.add(getTextArea(), null);

       }

       return jContentPane;

    }

 

} //  @jve:decl-index=0:visual-constraint="10,10"