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

📄 ftpsession.java

📁 该代码总共有两部分 第一部分是FTPClient.java 第二部分是FtpSession.java
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;

import java.util.*;
import java.io.*;
import java.net.*;
import java.lang.reflect.*;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.DefaultListModel;
import javax.swing.JTree;
import javax.swing.border.TitledBorder;
//ftp client class
import sun.net.*;
import sun.net.ftp.*;

public class FtpSession extends JFrame implements ActionListener
{

	private JTextField txtHost = new JTextField(10);
    private JTextField txtPort = new JTextField(10);
    private JTextField txtUser = new JTextField(10);
    private JPasswordField txtPass = new JPasswordField(10);
    private JTextField txtFile = new JTextField(20);

	private JPanel FtpClientFrame1 = new JPanel(new GridLayout(4,2));
	private JPanel FtpClientFrame2 = new JPanel(new GridLayout(2,1));
	private JPanel FtpClientFrame3 = new JPanel(new GridLayout(6,1,0,4));
	private JPanel FtpClientFrame4 = new JPanel(new BorderLayout());
	private JPanel FtpClientFrameS = new JPanel(new FlowLayout(FlowLayout.LEFT));

	private JPanel FtpClientFrame5 = new JPanel(new BorderLayout());
	private JPanel FtpClientFrame6 = new JPanel(new BorderLayout());

    private JLabel hostLabel = new JLabel("Host");
    private JLabel portLabel = new JLabel("Port");
    private JLabel loginLabel = new JLabel("Login");
    private JLabel passLabel = new JLabel("Pass");
	
	private JButton btn_Connect = new JButton("Connect");
	private JButton btn_List = new JButton("list");
	private JButton btn_Download = new JButton("down");
	private JButton btn_Upload = new JButton("up");
	private JButton btn_Type = new JButton("ACSII");
	private JButton btn_Select = new JButton("Select");
    private JButton btn_CD = new JButton("CD");
	private JButton btn_Exit = new JButton("Exit");
    //连接状态
	private JLabel lblStatus = new JLabel("Status:");
    
//    DefaultListModel lstRemote = new DefaultListModel();
	private JList remoteList = new JList();
	
	//...
	boolean isConnect;
	protected sun.net.ftp.FtpClient ftpclient;
	protected String m_stxtFile;
	protected String m_sHostFile;
	private String host,port,user,pass;

//Construct the frame
public FtpSession(){
	enableEvents(AWTEvent.WINDOW_EVENT_MASK);
	try{
		createFrame();
		isConnect = false;
		setComponent();
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
}

public void createFrame() throws Exception 
{
	

//    private JPanel FtpClientFrameOne = new JPanel(new FlowLayout(FlowLayout.LEFT));
//    private JPanel FtpClientFrameTwo = new JPanel(new GridLayout(1, 8));
//    private JPanel FtpClientFrameThree = new JPanel(new GridLayout(2, 1));
//    private JPanel FtpClientFrameFour = new JPanel(new GridLayout(1, 2));

    //连接、断开按钮
    
    //用户登录

    
    //本地、远程窗口
 //   DefaultListModel modelList = new DefaultListModel();
//    private JList localList = new JList();
 //   String[] str={"hell","world"};
	
//    JScrollPane localScrollPane = new JScrollPane(localList);
   //本地、远程目录树
 //   private JTree localTree;
//    private JTree ServerTree;
	
    

		TitledBorder title = new TitledBorder("FTP seting");
		
		FtpClientFrame1.setSize(200,300);

		FtpClientFrame1.setBorder(title);
        FtpClientFrame1.add(hostLabel);
		FtpClientFrame1.add(txtHost);
        
		FtpClientFrame1.add(portLabel);
        FtpClientFrame1.add(txtPort);

		FtpClientFrame1.add(loginLabel);
		FtpClientFrame1.add(txtUser);

		FtpClientFrame1.add(passLabel);
		FtpClientFrame1.add(txtPass);
        
		FtpClientFrame2.setBorder(new TitledBorder("Local"));
        FtpClientFrame2.add(txtFile);
        FtpClientFrame2.add(btn_Select);

        FtpClientFrame3.add(btn_Connect);
		FtpClientFrame3.add(btn_List);
        FtpClientFrame3.add(btn_Download);
        FtpClientFrame3.add(btn_Upload);
        FtpClientFrame3.add(btn_Type);
		FtpClientFrame3.add(btn_Exit);

		FtpClientFrame4.setBorder(new TitledBorder("Remote"));
        FtpClientFrame4.add(BorderLayout.NORTH,remoteList);
        FtpClientFrame4.add(BorderLayout.CENTER,btn_CD);
		FtpClientFrameS.add(lblStatus);


		FtpClientFrame6.add(FtpClientFrame1,"North");
		FtpClientFrame6.add(FtpClientFrame2,"Center");

        FtpClientFrame5.add(FtpClientFrame6,"West");
        FtpClientFrame5.add(FtpClientFrame3,"Center");
		FtpClientFrame5.add(FtpClientFrame4,"East");
		FtpClientFrame5.add(FtpClientFrameS,"South");

        setContentPane(FtpClientFrame5);
        setTitle("Ftp客户端");
       // setSize(600, 250);
		pack();
		//setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

		btn_Connect.addActionListener(this);
		btn_Select.addActionListener(this);
		btn_List.addActionListener(this);
		btn_Download.addActionListener(this);
		btn_Upload.addActionListener(this);
		btn_Type.addActionListener(this);
       // btn_Select.addActionListener(this);
        btn_CD.addActionListener(this);
		btn_Exit.addActionListener(this);
    }

public void jMenuFileExit_actionPerformed(ActionEvent e){
	disconnect();
	System.exit(0);
}

protected void processWindowEvent(WindowEvent e){
	super.processWindowEvent(e);
	if(e.getID() == WindowEvent.WINDOW_CLOSING){
		jMenuFileExit_actionPerformed(null);
	}
}

void btn_Select_actionPerformed(ActionEvent e)
{
	JFileChooser jFileChooser1 = new JFileChooser();
	jFileChooser1.setCurrentDirectory(new File("."));
	jFileChooser1.setDialogType(JFileChooser.OPEN_DIALOG);
	jFileChooser1.setDialogTitle("Select Local Path");

	if ((jFileChooser1.showOpenDialog(this) != JFileChooser.APPROVE_OPTION))
		return;

	String fileName = jFileChooser1.getSelectedFile().getAbsolutePath();
	txtFile.setText(fileName);
	repaint();
}

void btn_Connect_actionPerformed(ActionEvent e)
{
	if (!isConnect)
	{
		isConnect = connect();
		setComponent();
	}
	else
	{
		disconnect();
		isConnect = false;
		setComponent();
	}
}

void btn_List_actionPerformed(ActionEvent e)
{
	Thread thread = new Thread(){public void run(){listFTPFile();}};
	thread.start();
}

void btn_Download_actionPerformed(ActionEvent e)
{
	Thread thread = new Thread(){public void run(){download();}};
	thread.start();
}

void btn_Upload_actionPerformed(ActionEvent e)
{
	Thread thread = new Thread(){public void run(){upload();}};
	thread.start();
}

void btn_CD_actionPerformed(ActionEvent e)
{
	Thread thread = new Thread(){public void run(){changeDirectory();}};
	thread.start();
}

void btn_Type_actionPerformed(ActionEvent e)
{
	Thread thread = new Thread(){public void run(){setType();}};
	thread.start();
}

public void actionPerformed(ActionEvent e)
{
	String jj;
	jj = ((JButton)e.getSource()).getText();
    if(jj.equals("Select"))
		btn_Select_actionPerformed(e);
		else if(jj.equals("Connect"))
			btn_Connect_actionPerformed(e);
			else if(jj.equals("list"))
				btn_List_actionPerformed(e); 
				else if(jj.equals("down"))
					btn_Download_actionPerformed(e);
					else if(jj.equals("up"))
						btn_Upload_actionPerformed(e);
						else if(jj.equals("CD"))
							btn_CD_actionPerformed(e);
							else if	(jj.equals("ACSII"))							
								btn_Type_actionPerformed(e);
							    else if (jj.equals("Exit"))
									jMenuFileExit_actionPerformed(e);
}

protected void setComponent()
{
	if (isConnect)
	{
//		btn_Connect.setIcon(imgConnect);
		btn_Connect.setToolTipText("Disconnect from Ftp  server");
	}
	else
	{
//		btn_Connect.setIcon(imgConnect);
		btn_Connect.setToolTipText("Connect to Ftp  server");
		DefaultListModel model = new DefaultListModel();
		remoteList.setModel(model);
		txtFile.setText("");
	}
	btn_List.setEnabled(isConnect);
	btn_Download.setEnabled(isConnect);
	btn_Upload.setEnabled(isConnect);
	btn_Type.setEnabled(isConnect);
	btn_CD.setEnabled(isConnect);
	btn_Select.setEnabled(isConnect);
	txtHost.setEnabled(!isConnect);
	txtPort.setEnabled(!isConnect);
	txtUser.setEnabled(!isConnect);
	txtPass.setEnabled(!isConnect);
	txtFile.setEnabled(isConnect);
}

//connect to Ftp server
protected boolean connect()
{
	String dMessage;
	String dTitle = "FTP Login Error";
	int dType = JOptionPane.ERROR_MESSAGE;

	host = this.txtHost.getText();
	if (host.length()==0)
	{
		dMessage = "Please enter the Ftp host address.";
		JOptionPane.showMessageDialog((Component)null,dMessage,dTitle,dType);
		return false;
	}
	port = txtPort.getText();
	user = txtUser.getText();
	if (user.length()==0)
	{
		dMessage = "Please enter username";
		JOptionPane.showMessageDialog((Component) null,dMessage,dTitle,dType);
		return false;
	}

	pass = new String(this.txtPass.getText());

	try{
		this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
		this.lblStatus.setText("Status:connecting to "+host);

		if (!port.equals(""))
		{
			ftpclient = new FtpClient(host,Integer.parseInt(port));
		}
		else
			ftpclient = new FtpClient(host);
		this.lblStatus.setText("Status: Logon to "+host);

⌨️ 快捷键说明

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