SWT(JFace) FTP客户端实现

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

以上就是SWT(JFace) FTP客户端实现的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java