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

📄 downloadqueue.java

📁 一个JAVA做的FTP软件,带源码的,可以很好的进行二次开发,,并带有详细说明文件的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * 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. */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 java.util.*;import javax.swing.*;import javax.swing.JComponent.*;import javax.swing.event.*;public class DownloadQueue extends HPanel implements ActionListener{    private static final String SEP = "--> ";    // Number of Retry    int NumRetry = 5;    //private JTextArea text = new JTextArea();    private DefaultListModel liststr = new DefaultListModel();    private JList list = new JList(liststr);    private ArrayList queue = new ArrayList();    private queueDownloader thread = new queueDownloader();    private QueueRecord lastDownload;    private BasicConnection con;    // private Vector listeners = new Vector();    private HImageButton start = new HImageButton(Settings.resumeImage,                                                  "start",                                                  "Start queue download...",                                                  this);    private HImageButton stop = new HImageButton(Settings.pauseImage, "stop",                                                 "Stop queue download...", this);    private HImageButton save = new HImageButton(Settings.saveImage, "save",                                                 "Save queue list to file...",                                                 this);    private HImageButton load = new HImageButton(Settings.cdImage, "load",                                                 "Load queue list from...", this);    private HImageButton up = new HImageButton(Settings.downloadImage, "up",                                               "Change order of queue", this);    private HImageButton down = new HImageButton(Settings.uploadImage, "down",                                                 "Change order of queue", this);    private HImageButton delete = new HImageButton(Settings.deleteImage, "del",                                                   "Delete item in queue", this);    //private HImageButton rotate = new HImageButton(Settings.cmdImage,"rotate","Toggle selected transfer...",this);    // connection established?    private boolean isThere = false;    private boolean downloading = false;    private ConnectionHandler handler = new ConnectionHandler();    private JLabel statuslabel;    public DownloadQueue()    {        setLayout(new BorderLayout());        // list.setCellRenderer(new DirCellRenderer());        HPanel cmdP = new HPanel();        cmdP.add(start);        cmdP.add(stop);        cmdP.add(new JLabel("   "));        cmdP.add(up);        cmdP.add(down);        cmdP.add(delete);        cmdP.add(new JLabel("   "));        cmdP.add(save);        cmdP.add(load);        start.setSize(24, 24);        start.setBorder(true);        stop.setSize(24, 24);        stop.setBorder(true);        up.setSize(24, 24);        up.setBorder(true);        down.setSize(24, 24);        down.setBorder(true);        delete.setSize(24, 24);        delete.setBorder(true);        save.setSize(24, 24);        save.setBorder(true);        load.setSize(24, 24);        load.setBorder(true);        JScrollPane dP = new JScrollPane(list);        //add("South",cmdP);        //add("North",dP);        add(cmdP, BorderLayout.SOUTH);        add(dP, BorderLayout.CENTER);        HPanel status = new HPanel();        statuslabel = new JLabel("");        statuslabel.setSize(100, 100);        status.add(statuslabel);        add(status, BorderLayout.NORTH);        //*** MY ADDITIONS        start.setToolTipText("Start queue download...");        stop.setToolTipText("Stop queue download...");        save.setToolTipText("Save queue list to file...");        load.setToolTipText("Load queue list from...");        up.setToolTipText("Change order of queue");        down.setToolTipText("Change order of queue");        delete.setToolTipText("Delete item in queue");        //***    }    /*    public void fresh()    {    }    */    public void addFtp(String file)    {        Log.debug("Remote File" + JFtp.remoteDir.getPath() + file +                  "Local File" + JFtp.localDir.getPath() + file + "HostName" +                  JFtp.hostinfo.hostname);        QueueRecord rec = new QueueRecord();        rec.type = "ftp";        rec.hostname = JFtp.hostinfo.hostname;        rec.username = JFtp.hostinfo.username;        rec.password = JFtp.hostinfo.password;        rec.port = JFtp.hostinfo.port;        rec.local = JFtp.localDir.getPath();        rec.remote = JFtp.remoteDir.getPath();        rec.file = file;        queue.add(rec);        liststr.addElement(rec.hostname + " : " + rec.remote + rec.file);    }    public void actionPerformed(ActionEvent e)    {        if(e.getActionCommand().equals("start"))        {            if(thread != null)            {                if(!thread.isAlive())                {                    thread = new queueDownloader();                    thread.start();                    //listeners.add(thread);                }            }            else            {                thread = new queueDownloader();                thread.start();                //listeners.add(thread);            }        }        else if(e.getActionCommand().equals("stop"))        {            if(thread != null)            {                thread.block = true;                //QueueRecord rec = (QueueRecord)queue.get(0);                //Transfer d = (Transfer)handler.getConnections().get(rec.file);                //DataConnection dcon = d.getDataConnection();                FtpConnection ftpcon = (FtpConnection) con;                DataConnection dcon = ftpcon.getDataConnection();                dcon.getCon().work = false;                try                {                    dcon.sock.close();                }                catch(Exception ex)                {                    ex.printStackTrace();                }            }        }        else if(e.getActionCommand().equals("down"))        {            if(list.getSelectedIndex() != -1)            {                int a = list.getSelectedIndex();                int b = a + 1;                QueueRecord qa = (QueueRecord) queue.get(b);                queue.remove(b);                queue.add(a, qa);                String sa = (String) liststr.get(b);                liststr.remove(b);                liststr.add(a, sa);                list.setSelectedIndex(b);            }        }        else if(e.getActionCommand().equals("up"))        {            if(list.getSelectedIndex() != -1)            {                int a = list.getSelectedIndex() - 1;                int b = a + 1;                QueueRecord qa = (QueueRecord) queue.get(b);                queue.remove(b);                queue.add(a, qa);                String sa = (String) liststr.get(b);                liststr.remove(b);                liststr.add(a, sa);                list.setSelectedIndex(a);            }        }        else if(e.getActionCommand().equals("del"))        {            if(list.getSelectedIndex() != -1)            {                queue.remove(list.getSelectedIndex());                liststr.remove(list.getSelectedIndex());                list.setSelectedIndex(0);            }        }        else if(e.getActionCommand().equals("save"))        {            JFileChooser chooser = new JFileChooser();            chooser.setDialogTitle("Save file");            chooser.setDialogType(JFileChooser.SAVE_DIALOG);            int returnVal = chooser.showSaveDialog(new JDialog());            if(returnVal == JFileChooser.APPROVE_OPTION)            {                File f = chooser.getSelectedFile();                saveList(f);            }        }        else if(e.getActionCommand().equals("load"))        {            JFileChooser chooser = new JFileChooser();            chooser.setDialogTitle("Open file");            chooser.setDialogType(JFileChooser.OPEN_DIALOG);            int returnVal = chooser.showOpenDialog(new JDialog());            if(returnVal == JFileChooser.APPROVE_OPTION)            {                File f = chooser.getSelectedFile();                loadList(f);            }        }    }    private void saveList(File file)    {        try        {            if(file.exists())            {                file.delete();

⌨️ 快捷键说明

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