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

📄 sitepanelmousehandle.java

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

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

import javax.swing.*;

import FtpLocalSource.LocalSourcePanelClass;
import GUI.RemoteFilePanel;

import com.db.*;

import com.jcat.ftp.*;
import com.jcat.ftp.event.*;
import com.jcat.ftp.table.*;

/**
 * 用于站点管理器鼠标事件监听
 * @author 赖程远
 *
 */
public class SitePanelMouseHandle extends MouseAdapter
{
	private JTabbedPane				rightTabbedPane;
	private JTabbedPane				downTabbedPane;
	private SitePanel				sitePanel;
	private LocalSourcePanelClass	localSourcePanel;
	
	/**
	 * 构造函数
	 * @param sitePanel 用于获取站点管理器面板
	 * @param localSourcePanel 用于显示本地目录
	 * @param rightTabbedPane 用于显示远程FTP目录
	 * @param downTabbedPane 用于显示连接信息
	 */
	public SitePanelMouseHandle(SitePanel sitePanel,
			LocalSourcePanelClass localSourcePanel,
			JTabbedPane rightTabbedPane, JTabbedPane downTabbedPane)
	{
		this.localSourcePanel = localSourcePanel;
		this.sitePanel = sitePanel;
		this.rightTabbedPane = rightTabbedPane;
		this.downTabbedPane = downTabbedPane;
	}
	
	public void mouseReleased(MouseEvent e)
	{
		sitePanel.mouseReleased(e);
	}
	
	/**
	 * 用于响应鼠标点击时间打开新FTP连接
	 */
	public void mouseClicked(MouseEvent e)
	{
		SiteList list = sitePanel.getList();
		if (!list.isSelectionEmpty() && e.getButton() == 1
				&& e.getClickCount() == 2)
		{
			FtpSite site = sitePanel.getSelectedSite();
			int i = rightTabbedPane.indexOfTab(site.getSite());
			if (i <= -1)
			{
				final FTPConnection conn = new FTPConnection();
				final RemoteFilePanel pane = new RemoteFilePanel(conn,
						localSourcePanel);
				
				TaskTable task = new TaskTable(conn.getTaskQueue());
				
				rightTabbedPane.addTab(site.getSite(), pane);
				JLabel label = new JLabel(site.getSite());
				rightTabbedPane.setTabComponentAt(
						rightTabbedPane.getTabCount() - 1, label);
				rightTabbedPane.setSelectedComponent(pane);
				label.addMouseListener(new DisconnectListener(rightTabbedPane,
						downTabbedPane));
				
				downTabbedPane.setPreferredSize(new Dimension(300, 150));
				label = new JLabel(site.getSite() + "任务队列");
				JScrollPane s=new JScrollPane(task);
				downTabbedPane.addTab(site.getSite(), s);
				downTabbedPane.setTabComponentAt(
						downTabbedPane.getTabCount() - 1, label);
				downTabbedPane.setSelectedComponent(s);
				task.setUpdate(true);
				//}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
				/*label.addMouseListener(new MouseAdapter()
				{
					public void mouseClicked(MouseEvent e)
					{
						if (e.getButton() == MouseEvent.BUTTON1)
						{
							int i = downTabbedPane.getSelectedIndex();
							TaskTable taskTable = (TaskTable) downTabbedPane
									.getComponentAt(i);
							taskTable.setUpdate(false);
							i = downTabbedPane
									.indexOfTabComponent(e.getComponent());
							downTabbedPane.setSelectedIndex(i);
							taskTable = (TaskTable) downTabbedPane
									.getComponentAt(i);
							taskTable.setUpdate(true);
						}
					}
				});*/
				
				final JTextArea textArea = ((RemoteFilePanel) rightTabbedPane
						.getSelectedComponent()).getTextArea();
				
				conn.setHost(site.getSite());
				textArea.append(site.getSite() + "\n");
				conn.setUser(site.getUser());
				conn.setPassword(site.getPassword());
				conn.setPort(site.getPort());
				conn.getMessageQueue().addMessageListener(new MessageListener()
				{
					
					@Override
					public void messageAdded(MessageEvent e)
					{
						MessageReader r = (MessageReader) e.getSource();
						textArea.append(r.readMessage() + "\n");
						textArea.setCaretPosition(textArea.getText().length());
					}
					
				});
				Thread thread = new Thread(new Runnable()
				{
					
					@Override
					public void run()
					{
						conn.connect();
						if (conn.isConnected())
						{
							conn.login();
						}
						if (conn.loggedin())
						{
							conn.changeWorkingDirectory(sitePanel
									.getSelectedSite().getFtpPath());
							conn.printWorkingDirectory();
							pane.getPath().setText(
									sitePanel.getSelectedSite().getFtpPath());
							FTPFile[] f = conn.listRemoteFiles();
							pane.getTable().showFTPFile(f);
						}
						
					}
					
				});
				thread.start();
				
			} else
			{
				rightTabbedPane.setSelectedIndex(i);
			}
		}
		
	}
}

⌨️ 快捷键说明

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