SWT(JFace)小制作:FTP客户端实现
Jar包一览:
org.eclipse.jface_3.4.2.M20090107-0800.jar
org.eclipse.swt.win32.win32.x86_3.4.1.v3452b.jar
org.eclipse.core.commands_3.4.0.I20080509-2000.jar
org.eclipse.core.runtime_3.4.0.v20080512.jar
org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
commons-net-ftp-2.0.jar
演示代码如下:
FTPWindow.java
package swt_jface.demo13;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ProtocolCommandEvent;
import org.apache.commons.net.ProtocolCommandListener;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
public class FTPWindow extends ApplicationWindow {
TableViewer localDirBrowser;
TableViewer remoteDirBrowser;
Label labelPathLocal;
Label labelPathRemote;
StyledText textLog;
ConnectionDialog connectionDialog;
Action actionUpLocalDir;
Action actionUpRemoteDir;
Action actionBrowseLocalDir;
Action actionConnect;
Action actionDisconnect;
Action actionDisplayAbout;
Action actionExit;
FTPClient ftp;
ConnectionInfo connectionInfo;
public FTPWindow(Shell parentShell) {
super(parentShell);
createActions();
addStatusLine();
//addCoolBar(SWT.FLAT | SWT.RIGHT);
addToolBar(SWT.FLAT);
addMenuBar();
ftp = new FTPClient();
ftp.addProtocolCommandListener(new ProtocolCommandListener() {
public void protocolCommandSent(ProtocolCommandEvent e) {
logMessage("> " + e.getCommand(), false);
}
public void protocolReplyReceived(ProtocolCommandEvent e) {
logMessage("<" + e.getMessage(), false);
}
});
}
private void createActions() {
actionUpLocalDir = new Action() {
public void run() {
if (localDirBrowser.getInput() == null)
return;
File dir = ((File) localDirBrowser.getInput()).getParentFile();
if (dir != null) {
localDirBrowser.setInput(dir);
labelPathLocal.setText("Path: " + dir);
}
}
};
actionUpLocalDir.setText("Up");
actionUpLocalDir.setToolTipText("Up one level - local dir");
actionUpLocalDir.setImageDescriptor(ImageDescriptor.createFromFile(null, "C:/icons/ftp/up.gif"));
actionBrowseLocalDir = new Action() {
public voi
org.eclipse.jface_3.4.2.M20090107-0800.jar
org.eclipse.swt.win32.win32.x86_3.4.1.v3452b.jar
org.eclipse.core.commands_3.4.0.I20080509-2000.jar
org.eclipse.core.runtime_3.4.0.v20080512.jar
org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
commons-net-ftp-2.0.jar
演示代码如下:
FTPWindow.java
复制代码 代码如下:
package swt_jface.demo13;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ProtocolCommandEvent;
import org.apache.commons.net.ProtocolCommandListener;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
public class FTPWindow extends ApplicationWindow {
TableViewer localDirBrowser;
TableViewer remoteDirBrowser;
Label labelPathLocal;
Label labelPathRemote;
StyledText textLog;
ConnectionDialog connectionDialog;
Action actionUpLocalDir;
Action actionUpRemoteDir;
Action actionBrowseLocalDir;
Action actionConnect;
Action actionDisconnect;
Action actionDisplayAbout;
Action actionExit;
FTPClient ftp;
ConnectionInfo connectionInfo;
public FTPWindow(Shell parentShell) {
super(parentShell);
createActions();
addStatusLine();
//addCoolBar(SWT.FLAT | SWT.RIGHT);
addToolBar(SWT.FLAT);
addMenuBar();
ftp = new FTPClient();
ftp.addProtocolCommandListener(new ProtocolCommandListener() {
public void protocolCommandSent(ProtocolCommandEvent e) {
logMessage("> " + e.getCommand(), false);
}
public void protocolReplyReceived(ProtocolCommandEvent e) {
logMessage("<" + e.getMessage(), false);
}
});
}
private void createActions() {
actionUpLocalDir = new Action() {
public void run() {
if (localDirBrowser.getInput() == null)
return;
File dir = ((File) localDirBrowser.getInput()).getParentFile();
if (dir != null) {
localDirBrowser.setInput(dir);
labelPathLocal.setText("Path: " + dir);
}
}
};
actionUpLocalDir.setText("Up");
actionUpLocalDir.setToolTipText("Up one level - local dir");
actionUpLocalDir.setImageDescriptor(ImageDescriptor.createFromFile(null, "C:/icons/ftp/up.gif"));
actionBrowseLocalDir = new Action() {
public voi
以上就是SWT(JFace) FTP客户端实现的详细内容,更多请关注0133技术站其它相关文章!