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

📄 addbookmarks.java

📁 一个JAVA做的FTP软件,带源码的,可以很好的进行二次开发,,并带有详细说明文件的
💻 JAVA
字号:
/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. *///NOTE TO SELF: use setModal here somewhere?package net.sf.jftp.gui;import net.sf.jftp.*;import net.sf.jftp.config.*;import net.sf.jftp.gui.framework.*;import net.sf.jftp.net.*;import net.sf.jftp.util.*;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class AddBookmarks extends HFrame implements ActionListener,                                                    WindowListener{    private static JFtp jftp;    private HButton add = new HButton("Add Bookmark");    private HButton addAndConnect = new HButton("Add Bookmark and Connect to Server");    //public JComboBox protocols = new JComboBox();    public HComboBox protocols = new HComboBox("Protocol:");    public HTextField host = new HTextField("Hostname:", "localhost");    public HTextField user = new HTextField("Username:", "anonymous");    public HPasswordField pass = new HPasswordField("Password:",                                                    "none@nowhere.no");    public HTextField port = new HTextField("Port:    ", "21");    public HTextField dirOrDom = new HTextField("Directory/Domain:    ", "");    //public JComboBox isLocal = new JComboBox();    public HComboBox isLocal = new HComboBox("Local Connection:");    //private ActionListener protocolListener = new ActionListener();    //private FlowLayout fl = new FlowLayout(FlowLayout.RIGHT, 10, 5);    public AddBookmarks(ComponentListener l, JFtp jftp)    {        //listener = l;        this.jftp = jftp;        init();    }    public AddBookmarks(JFtp jftp)    {        this.jftp = jftp;        init();    }    public void init()    {        setSize(650, 400);        setLocation(50, 150);        setTitle("Add Bookmarks...");        //setBackground(okP.getBackground());           getContentPane().setLayout(new GridLayout(8, 1));        getContentPane().add(protocols);        getContentPane().add(host);        getContentPane().add(port);        getContentPane().add(user);        getContentPane().add(pass);        getContentPane().add(dirOrDom);        getContentPane().add(isLocal);        //getContentPane().add(new FlowLayout(FlowLayout.RIGHT, 10, 5));        //getContentPane().add(fl);        //fl.add(add);        Panel buttonPanel = new Panel(new FlowLayout(FlowLayout.CENTER, 5, 20));        getContentPane().add(buttonPanel);        buttonPanel.add(add);        buttonPanel.add(addAndConnect);        /*        getContentPane().add(add);        getContentPane().add(addAndConnect);        */        add.addActionListener(this);        addAndConnect.addActionListener(this);        //port.setEnabled(false);        protocols.setEditable(false);        protocols.addItem("FTP");        protocols.addItem("SFTP");        protocols.addItem("SMB");        protocols.addItem("NFS");        protocols.addActionListener(this);        //protocols.addActionListener();        isLocal.setEditable(false);        isLocal.addItem("No");        isLocal.addItem("Yes");    }    public void update()    {        setVisible(true);        toFront();    }    public void windowClosing(WindowEvent e)    {        //System.exit(0);        this.dispose();    }    public void windowClosed(WindowEvent e)    {    }    public void windowActivated(WindowEvent e)    {    }    public void windowDeactivated(WindowEvent e)    {    }    public void windowIconified(WindowEvent e)    {    }    public void windowDeiconified(WindowEvent e)    {    }    public void windowOpened(WindowEvent e)    {    }    public void actionPerformed(ActionEvent e)    {        if(e.getSource() == add)        {            getData(false);        }        else if(e.getSource() == addAndConnect)        {            getData(true);        }        //FOR NOW: only other possible event is update of the protocol ComboBox        else        {            String s = new String("");            //s = (String) protocols.getSelectedItem()            s = protocols.getSelectedItem().toString();            System.out.println(s);            //need to put information on what each protocol accepts             //elsewhere to make it universally accessible to all routines             //that need this info?            if(s.equals("FTP"))            {                port.setEnabled(true);                user.setEnabled(true);                pass.setEnabled(true);                dirOrDom.setEnabled(true);            }            else if(s.equals("SFTP"))            {                port.setEnabled(true);                user.setEnabled(true);                pass.setEnabled(true);                dirOrDom.setEnabled(false);            }            else if(s.equals("SMB"))            {                port.setEnabled(false);                user.setEnabled(true);                pass.setEnabled(true);                dirOrDom.setEnabled(true);            }            //can assume this is NFS for now            else            {                port.setEnabled(false);                user.setEnabled(true);                pass.setEnabled(true);                dirOrDom.setEnabled(false);            }            //System.out.println("yes!");        }         //OK event    }     //actionPerformed    private void getData(boolean andConnect)    {        String protocoltmp = new String("");        //here, get the selected protocol        //s = (String) protocols.getSelectedItem()        protocoltmp = protocols.getSelectedItem().toString();        //System.out.println(s);        System.out.println("test");        //what happens next: get data on protocol, and based on the data        //for the protocol, get what's needed for each field.        //the data extraction from each field can actually be put in a         //separate private method which could also be accessed if the        //connection is to be initiated here        //then, need a routine to open the bookmark file, then append it        //to the end (add a blank line, then the data, separated by the        //hash/sharp (#) comment) (and should it be here, or should only        //one class know about it. Or maybe it can just refer to the config        //file        //don't need to get  all this, it depends on the protocol        //***IMPORTANT NOTE!!!!: LAN BROWSING SHOULD BE SPEAPRTE PROTOCOL!         //ALSO IMPORTANT: can refer to JFtp.hostinfo.hostname, for current        //hostname, JFtp.hostinfo.type for prortocol, etc... refer to         //code in HostChooser.java that says this, but might not be the        //case for SFTP        //FTP: get all of it        //SFTP: All but dirOrDom? (SFTP doesn;t seem to support that at this time)        //SMB: Don't get port        //NFS: Don;t get port or dirOrDom        //FOR NOW: just get all data        /*        String htmp = StringUtils.cut(host.getText(), " ");        String utmp = StringUtils.cut(user.getText(), " ");        String ptmp = StringUtils.cut(pass.getText(), " ");        String potmp = StringUtils.cut(port.getText(), " ");                String dirOrDomtmp = StringUtils.cut(dirOrDom.getText(), " ");        */        String htmp = checkIfEmpty(StringUtils.cut(host.getText(), " "));        String utmp = checkIfEmpty(StringUtils.cut(user.getText(), " "));        String ptmp = checkIfEmpty(StringUtils.cut(pass.getText(), " "));        String potmp = checkIfEmpty(StringUtils.cut(port.getText(), " "));        String dirOrDomtmp = checkIfEmpty(StringUtils.cut(dirOrDom.getText(),                                                          " "));        String local = new String("");        Integer potmpInt = new Integer(potmp);        int potmpint = potmpInt.intValue();        local = isLocal.getSelectedItem().toString();        String localString = new String("");        boolean localtmp = false;        if(local.equals("true"))        {            localtmp = true;            localString = "true";        }        else        {            localtmp = false;            localString = "false";        }        //first, build the string which is to be appended to end        //of bookmark file        // protocol#host#user#password#port#dir/domain#local        String addedString = new String("");        addedString += (protocoltmp + "#");        addedString += (htmp + "#");        addedString += (utmp + "#");        addedString += (ptmp + "#");        addedString += (potmp + "#");        addedString += (dirOrDomtmp + "#");        addedString += localString;        //here, start the routine for appending the line to the bookmark        //file (SHOULD IT BE IN A SEPARATE ROUTINE?)        try        {            FileOutputStream fos;            PrintStream out;            fos = new FileOutputStream(Settings.bookmarks, true);            out = new PrintStream(fos);            //commented out, just for now            out.println(addedString);            out.println("");            //if it worked, update the menu            jftp.menuBar.loadBookmarks();        }        catch(Exception e)        {            e.printStackTrace();        }        if(andConnect)        {            if(protocoltmp.equals("FTP"))            {                StartConnection.startFtpCon(htmp, utmp, ptmp, potmpint,                                            dirOrDomtmp, localtmp);            }            else            {                StartConnection.startCon(protocoltmp, htmp, utmp, ptmp,                                         potmpint, dirOrDomtmp, localtmp);            }        }        //else {        //}        this.dispose();        //this.setVisible(false);        JFtp.mainFrame.setVisible(true);        JFtp.mainFrame.toFront();    }     //getData    private String checkIfEmpty(String value)    {        String retVal = new String("0");        if(value.equals(""))        {            return retVal;        }        else        {            return value;        }    }     //checkIfEmpty}

⌨️ 快捷键说明

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