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

📄 remotefilepanel.java

📁 具有Ftp的基本功能
💻 JAVA
字号:
package GUI;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import FtpForaneSource.ForaneSourceTableClass;
import FtpLocalSource.LocalSourcePanelClass;
import Listener.RemoteRightClickListener;

import com.jcat.ftp.*;
/**
 * 用于显示FTP站点文件列表及地址的面板
 * @author 赖程远
 *
 */
public class RemoteFilePanel extends JPanel
{
	/**
	 * 
	 */
	private static final long	serialVersionUID	= 1L;
	private FTPConnection			conn;
	private ForaneSourceTableClass	table;
	private JTextField				path;
	private JButton					toParent;
	private JButton					refresh;
	private JTextArea				textArea;
	
	/**
	 * 构造函数
	 * @param conn 一个FTP连接 
	 * @param localDirectory 本地目录面板
	 */
	public RemoteFilePanel(FTPConnection conn,
			LocalSourcePanelClass localDirectory)
	{
		super(new BorderLayout());
		this.conn = conn;
		table = new ForaneSourceTableClass();
		path = new JTextField(20);
		path.setText("/");
		textArea = new JTextArea(6, 20);
		textArea.setEditable(false);
		toParent = new JButton(new ImageIcon("superior.png"));
		refresh = new JButton(new ImageIcon("refresh.png"));
		JPanel pane = new JPanel(new BorderLayout());
		JPanel panel = new JPanel(new GridLayout(1, 2));
		panel.add(toParent);
		panel.add(refresh);
		pane.add(path, BorderLayout.CENTER);
		pane.add(panel, BorderLayout.EAST);
		this.add(pane, BorderLayout.NORTH);
		this.add(new JScrollPane(table), BorderLayout.CENTER);
		this.add(new JScrollPane(textArea,
						JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
						JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
						BorderLayout.SOUTH);
		
		toParent.setToolTipText("返回上一级");
		refresh.setToolTipText("刷新");
		
		table.addMouseListener(new RemoteRightClickListener(this, localDirectory));
		toParent.addActionListener(new ActionListener()
		{
			
			@Override
			public void actionPerformed(ActionEvent arg0)
			{
				RemoteFilePanel temp = RemoteFilePanel.this;
				temp.getConn().changeWorkingDirectoryToParent();
				temp.getTable().showFTPFile(temp.getConn().listRemoteFiles());
				
			}
			
		});
		
		refresh.addActionListener(new ActionListener()
		{
			
			@Override
			public void actionPerformed(ActionEvent arg0)
			{
				RemoteFilePanel temp = RemoteFilePanel.this;
				temp.getConn().changeWorkingDirectory(temp.getPath().getText());
				temp.getTable().showFTPFile(temp.getConn().listRemoteFiles());
			}
			
		});
		
		path.addKeyListener(new KeyListener()
		{
			
			@Override
			public void keyPressed(KeyEvent e)
			{
				if (e.getKeyCode() == KeyEvent.VK_ENTER)
				{
					RemoteFilePanel temp = RemoteFilePanel.this;
					temp.getConn().changeWorkingDirectory(
							temp.getPath().getText());
					temp.getTable().showFTPFile(
							temp.getConn().listRemoteFiles());
				}
			}
			
			@Override
			public void keyReleased(KeyEvent arg0)
			{
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void keyTyped(KeyEvent arg0)
			{
				// TODO Auto-generated method stub
				
			}
			
		});
		
	}
	
	/**
	 * @return conn 返回FTP连接
	 */
	public FTPConnection getConn()
	{
		return conn;
	}
	
	/**
	 * @return table 返回FTP站点显示列表
	 */
	public ForaneSourceTableClass getTable()
	{
		return table;
	}
	
	/**
	 * @return path 返回当前所处FTP站点路径
	 */
	public JTextField getPath()
	{
		return path;
	}
	
	/**
	 * @return textArea 返回显示连接信息的文本框
	 */
	public JTextArea getTextArea()
	{
		return textArea;
	}
	
}

⌨️ 快捷键说明

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