Java语言实现简单FTP软件 FTP软件主界面(4)

首先看一下FTP软件的整体代码框架,具体内容如下

1、首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格

package com.oyp.ftp; 

import java.util.logging.Level;
import java.util.logging.Logger; 

import javax.swing.UIManager; 

import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; 

public class FTPMain {
 /**
  * 本应用的程序入口
  */
 public static void main(String args[]) {
  //导致 runnable 的 run 方法在 EventQueue 的指派线程上被调用。
  java.awt.EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     //使用 LookAndFeel 对象设置当前的默认外观。
     UIManager.setLookAndFeel(new NimbusLookAndFeel());//设置一个非常漂亮的外观
//     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     FTPClientFrame client_Frame = new FTPClientFrame();
     client_Frame.setVisible(true);
    } catch (Exception ex) {
     Logger.getLogger(FTPClientFrame.class.getName()).log(
       Level.SEVERE, null, ex);
    }
   }
  });
 }
}

2、介绍界面的主程序代码FTPClientFrame.java

package com.oyp.ftp; 

import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent; 

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JSeparator;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.UIManager; 

import com.oyp.ftp.panel.ftp.FtpPanel;
import com.oyp.ftp.panel.local.LocalPanel;
import com.oyp.ftp.panel.manager.FtpSiteDialog;
import com.oyp.ftp.panel.queue.DownloadPanel;
import com.oyp.ftp.panel.queue.QueuePanel;
import com.oyp.ftp.panel.queue.UploadPanel;
import com.oyp.ftp.utils.FtpClient;
import com.oyp.ftp.utils.SiteInfoBean;
import com.sun.java.swing.plaf.nimbus.*; 

public class FTPClientFrame extends javax.swing.JFrame {
 FtpClient ftpClient;
 private JPasswordField PassField;
 private JButton cutLinkButton;
 FtpPanel ftpPanel;
 LocalPanel localPanel;
 private JTextField portTextField;
 private JTextField serverTextField;
 private JTextField userTextField;
 private QueuePanel queuePanel;
 private UploadPanel uploadPanel;
 private DownloadPanel downloadPanel;
 private JSplitPane jSplitPane1;
 private JButton linkButton;
 private final LinkToAction LINK_TO_ACTION; // 连接到 按钮的动作处理器
 private final CutLinkAction CUT_LINK_ACTION; // 断开 按钮的动作处理器
 private SystemTray systemTray;
 private JToggleButton shutdownButton;
 private final ImageIcon icon = new ImageIcon(getClass().getResource(
   "/com/oyp/ftp/res/trayIcon.png")); 

 public FTPClientFrame() {
  LINK_TO_ACTION = new LinkToAction(this, "连接到", null);
  CUT_LINK_ACTION = new CutLinkAction(this, "断开", null);
  initComponents();
  initSystemTray();
 } 

 /**
  * 初始化系统托盘的方法
  */
 private void initSystemTray() {
  if (SystemTray.isSupported())
   systemTray = SystemTray.getSystemTray();
  TrayIcon trayIcon = new TrayIcon(icon.getImage());
  PopupMenu popupMenu = new PopupMenu("托盘菜单"); 

  // 创建显示主窗体菜单项
  MenuItem showMenuItem = new MenuItem("显示主窗体");
  showMenuItem.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
    FTPClientFrame.this.setExtendedState(JFrame.NORMAL);
    FTPClientFrame.this.setVisible(true);
   }
  }); 

  // 创建退出菜单项
  MenuItem exitMenuItem = new MenuItem("退出");
  exitMenuItem.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
    System.exit(0);
   }
  }); 

  popupMenu.add(showMenuItem);
  popupMenu.addSeparator();
  popupMenu.add(exitMenuItem);
  trayIcon.setPopupMenu(popupMenu);
  try {
   systemTray.add(trayIcon);
  } catch (AWTException e) {
   e.printStackTrace();
  }
 } 

 /**
  * 初始化程序界面的方法
  */
 private void initComponents() {
  setIconImage(icon.getImage());
  java.awt.GridBagConstraints gridBagConstraints; 

  JPanel jPanel1 = new JPanel();
  JToolBar jToolBar1 = new JToolBar();
  JButton linkTo = new JButton();
  cutLinkButton = new JButton();
  JPanel jPanel4 = new JPanel();
  JLabel jLabel1 = new JLabel();
  serverTextField = new JTextField();
  JLabel jLabel2 = new JLabel();
  userTextField = new JTextField();
  JLabel jLabel3 = new JLabel();
  PassField = new JPasswordField();
  JLabel jLabel6 = new JLabel();
  portTextField = new JTextField();
  linkButton = new JButton();
  JSplitPane jSplitPane2 = new JSplitPane();
  jSplitPane1 = new JSplitPane();
  ftpPanel = new FtpPanel(this); // 初始化FTP远程资源面板
  localPanel = new LocalPanel(this); // 初始化本地资源管理面板
  uploadPanel = new UploadPanel(); // 初始化上传队列面板
  downloadPanel = new DownloadPanel(); // 初始化下载队列面板
  queuePanel = new QueuePanel(this); // 初始化队列面板 

  JTabbedPane jTabbedPane1 = new JTabbedPane();
  JMenuBar MenuBar = new JMenuBar();
  JMenu fileMenu = new JMenu();
  JMenuItem ftpManageMenuItem = new JMenuItem();
  JSeparator jSeparator1 = new JSeparator();
  JMenuItem linkToMenuItem = new javax.swing.JMenuItem();
  JMenuItem cutMenuItem = new javax.swing.JMenuItem();
  JSeparator jSeparator2 = new javax.swing.JSeparator();
  JMenuItem exitMenuItem = new javax.swing.JMenuItem();
  JMenuItem uploadMenuItem = new javax.swing.JMenuItem();
  JSeparator jSeparator3 = new javax.swing.JSeparator();
  JMenuItem createFolderMenuItem = new javax.swing.JMenuItem();
  JMenuItem renameMenuItem = new javax.swing.JMenuItem();
  JMenuItem delMenuItem = new javax.swing.JMenuItem();
  JMenu ftpMenu = new javax.swing.JMenu();
  JMenuItem downMenuItem = new javax.swing.JMenuItem();
  JSeparator jSeparator6 = new javax.swing.JSeparator();
  JMenuItem ftpDelMenuItem = new javax.swing.JMenuItem();
  JMenuItem ftpRenameMenuItem = new javax.swing.JMenuItem();
  JMenuItem newFolderMenuItem = new javax.swing.JMenuItem();
  JMenu helpMenu = new javax.swing.JMenu();
  JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
  JMenuItem bugMenuItem = new javax.swing.JMenuItem(); 

//  setTitle("基于Socket的FTP软件Java实现");
  setTitle("Java语言实现简单FTP软件__欧阳鹏设计");
  addWindowListener(new java.awt.event.WindowAdapter() {
   public void windowOpened(java.awt.event.WindowEvent evt) {
    formWindowOpened(evt);
   } 

   public void windowIconified(final WindowEvent e) {
    setVisible(false);
   }
  });
  addComponentListener(new java.awt.event.ComponentAdapter() {
   public void componentResized(java.awt.event.ComponentEvent evt) {
    formComponentResized(evt);
   }
  });
  getContentPane().setLayout(new java.awt.GridBagLayout()); 

  jPanel1.setLayout(new java.awt.GridLayout(0, 1)); 

  jToolBar1.setRollover(true);
  jToolBar1.setFloatable(false); 

  linkTo.setText("连接到");
  linkTo.setFocusable(false);
  linkTo.setAction(LINK_TO_ACTION);
  jToolBar1.add(linkTo); 

  cutLinkButton.setText("断开");
  cutLinkButton.setEnabled(false);
  cutLinkButton.setFocusable(false);
  cutLinkButton.setAction(CUT_LINK_ACTION);
  jToolBar1.add(cutLinkButton); 

  jPanel1.add(jToolBar1); 

  shutdownButton = new JToggleButton();
  shutdownButton.setText("自动关机");
  shutdownButton.setToolTipText("队列完成后,自动关闭计算机");
  shutdownButton.setFocusable(false);
  jToolBar1.add(shutdownButton); 

  jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  jPanel4.setLayout(new javax.swing.BoxLayout(jPanel4,
    javax.swing.BoxLayout.LINE_AXIS)); 

  jLabel1.setText("主机地址:");
  jPanel4.add(jLabel1); 

  serverTextField.setText("192.168.1.100");
  serverTextField.addKeyListener(new java.awt.event.KeyAdapter() {
   public void keyPressed(java.awt.event.KeyEvent evt) {
    LinkFTPKeyPressed(evt);
   }
  });
  jPanel4.add(serverTextField); 

  jLabel2.setText("用户名:");
  jPanel4.add(jLabel2); 

  userTextField.setText("oyp");
  userTextField.setMaximumSize(new java.awt.Dimension(200, 2147483647));
  userTextField.setPreferredSize(new java.awt.Dimension(100, 21));
  userTextField.addKeyListener(new java.awt.event.KeyAdapter() {
   public void keyPressed(java.awt.event.KeyEvent evt) {
    LinkFTPKeyPressed(evt);
   }
  });
  jPanel4.add(userTextField); 

  jLabel3.setText("密码:");
  jPanel4.add(jLabel3); 

  PassField.setText("oyp");
  PassField.setMaximumSize(new java.awt.Dimension(200, 2147483647));
  PassField.setPreferredSize(new java.awt.Dimension(100, 21));
  PassField.addKeyListener(new java.awt.event.KeyAdapter() {
   public void keyPressed(java.awt.event.KeyEvent evt) {
    LinkFTPKeyPressed(evt);
   }
  });
  jPanel4.add(PassField); 

  jLabel6.setText("端口:");
  jPanel4.add(jLabel6); 

  portTextField.setText("21");
  portTextField.setMaximumSize(new java.awt.Dimension(100, 2147483647));
  portTextField.setPreferredSize(new java.awt.Dimension(50, 21));
  portTextField.addKeyListener(new java.awt.event.KeyAdapter() {
   public void keyPressed(java.awt.event.KeyEvent evt) {
    LinkFTPKeyPressed(evt);
   }
  });
  jPanel4.add(portTextField); 

  linkButton.setText("连接");
  linkButton.setFocusable(false);
  linkButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  linkButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  linkButton.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(java.awt.event.ActionEvent evt) {
    linkButtonActionPerformed(evt);
   }
  });
  jPanel4.add(linkButton); 

  jPanel1.add(jPanel4); 

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0; //指定包含组件的显示区域开始边的单元格,其中行的第一个单元格为 gridx=0。
  gridBagConstraints.gridy = 0; //指定位于组件显示区域的顶部的单元格,其中最上边的单元格为 gridy=0。
  //当组件的显示区域大于它所请求的显示区域的大小时使用此字段。
  gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; //在水平方向而不是垂直方向上调整组件大小。
  gridBagConstraints.weightx = 1.0; //指定如何分布额外的水平空间。
  getContentPane().add(jPanel1, gridBagConstraints); 

  jSplitPane2.setBorder(null);
  jSplitPane2.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
  jSplitPane2.setResizeWeight(1.0);
  jSplitPane2.setContinuousLayout(true); 

  jSplitPane1.setDividerLocation(400);
  jSplitPane1.setDividerSize(10);
  jSplitPane1.setOneTouchExpandable(true);
  jSplitPane1.setRightComponent(ftpPanel);
  jSplitPane1.setLeftComponent(localPanel); 

  jSplitPane2.setLeftComponent(jSplitPane1); 

  jTabbedPane1.setMinimumSize(new java.awt.Dimension(40, 170)); 

  jTabbedPane1.addTab("队列", queuePanel);// 添加队列面板
  jTabbedPane1.addTab("上传队列", uploadPanel);// 添加上传面板
  jTabbedPane1.addTab("下载队列", downloadPanel);// 添加下载面板 

  jSplitPane2.setBottomComponent(jTabbedPane1); 

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0;
  gridBagConstraints.gridy = 1;
  gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; //在水平方向和垂直方向上同时调整组件大小。
  gridBagConstraints.weightx = 1.0; //指定如何分布额外的水平空间。
  gridBagConstraints.weighty = 1.0; //指定如何分布额外的垂直空间。
  getContentPane().add(jSplitPane2, gridBagConstraints); 

  fileMenu.setMnemonic('f');
  fileMenu.setText("站点(F)"); 

  ftpManageMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_S,
    java.awt.event.InputEvent.CTRL_MASK));
  ftpManageMenuItem.setText("FTP站点管理(S)");
  ftpManageMenuItem.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
//    System.out.println("action");
    FtpSiteDialog dialog = new FtpSiteDialog(FTPClientFrame.this);
    dialog.setVisible(true);
   }
  });
  fileMenu.add(ftpManageMenuItem);
  fileMenu.add(jSeparator1); 

  linkToMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_C,
    java.awt.event.InputEvent.CTRL_MASK));
  linkToMenuItem.setText("连接到...(C)");
  linkToMenuItem.setAction(LINK_TO_ACTION);
  fileMenu.add(linkToMenuItem); 

  cutMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_Z,
    java.awt.event.InputEvent.CTRL_MASK));
  cutMenuItem.setText("断开(Z)");
  cutMenuItem.setAction(CUT_LINK_ACTION);
  fileMenu.add(cutMenuItem);
  fileMenu.add(jSeparator2); 

  exitMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
    java.awt.event.KeyEvent.VK_X,
    java.awt.event.InputEvent.CTRL_MASK));
  exitMenuItem.setText("退出(X)");
  exitMenuItem.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
    System.exit(0);
   }
  });
  fileMenu.add(exitMenuItem); 

  MenuBar.add(fileMenu); 

  JMenu localMenu = new JMenu();
  localMenu.setMnemonic('l');
  localMenu.setText("本地(L)"); 

  uploadMenuItem.setMnemonic('U');
  uploadMenuItem.setText("上传(U)");
  uploadMenuItem.setAction(localPanel.getActionMap().get("uploadAction")); 

  localMenu.add(uploadMenuItem);
  localMenu.add(jSeparator3); 

  createFolderMenuItem.setMnemonic('C');
  createFolderMenuItem.setText("新建文件夹(C)");
  createFolderMenuItem.setAction(localPanel.getActionMap().get(
    "createFolderAction"));
  localMenu.add(createFolderMenuItem); 

  renameMenuItem.setMnemonic('R');
  renameMenuItem.setText("重命名(R)");
  renameMenuItem.setAction(localPanel.getActionMap().get("renameAction"));
  localMenu.add(renameMenuItem); 

  delMenuItem.setMnemonic('D');
  delMenuItem.setText("删除(D)");
  delMenuItem.setAction(localPanel.getActionMap().get("delAction"));
  localMenu.add(delMenuItem); 

  JMenuItem localrefreshMenuItem = new JMenuItem();
  localrefreshMenuItem.setMnemonic('R');
  localrefreshMenuItem.setText("刷新(R)");
  localrefreshMenuItem.setAction(localPanel.getActionMap().get(
    "refreshAction"));
  localMenu.add(localrefreshMenuItem); 

  MenuBar.add(localMenu); 

  ftpMenu.setMnemonic('r');
  ftpMenu.setText("远程(R)"); 

  downMenuItem.setMnemonic('U');
  downMenuItem.setText("下载(U)");
  downMenuItem.setAction(ftpPanel.getActionMap().get("downAction"));
  ftpMenu.add(downMenuItem);
  ftpMenu.add(jSeparator6); 

  ftpDelMenuItem.setMnemonic('D');
  ftpDelMenuItem.setText("删除(D)");
  ftpDelMenuItem.setAction(ftpPanel.getActionMap().get("delAction"));
  ftpMenu.add(ftpDelMenuItem); 

  ftpRenameMenuItem.setMnemonic('R');
  ftpRenameMenuItem.setText("重命名(R)");
  ftpRenameMenuItem
    .setAction(ftpPanel.getActionMap().get("renameAction"));
  ftpMenu.add(ftpRenameMenuItem); 

  newFolderMenuItem.setMnemonic('C');
  newFolderMenuItem.setText("新建文件夹(C)");
  newFolderMenuItem.setAction(ftpPanel.getActionMap().get(
    "createFolderAction"));
  ftpMenu.add(newFolderMenuItem); 

  JMenuItem refreshMenuItem = new JMenuItem();
  refreshMenuItem.setMnemonic('R');
  refreshMenuItem.setText("刷新(R)");
  refreshMenuItem.setAction(ftpPanel.getActionMap().get("refreshAction"));
  ftpMenu.add(refreshMenuItem); 

  MenuBar.add(ftpMenu); 

  helpMenu.setText("帮助(H)");
  aboutMenuItem.setMnemonic('a');
  aboutMenuItem.setText("关于(A)");
  aboutMenuItem.addActionListener(new AboutItemAction(this));
  helpMenu.add(aboutMenuItem); 

  bugMenuItem.setMnemonic('u');
  bugMenuItem.setText("错误报告(U)");
  bugMenuItem.addActionListener(new BugItemAction());
  helpMenu.add(bugMenuItem); 

  MenuBar.add(helpMenu); 

  setJMenuBar(MenuBar); 

  java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
    .getScreenSize();
  setBounds((screenSize.width - 800) / 2, (screenSize.height - 600) / 2,
    800, 700);
 } 

 public JToggleButton getShutdownButton() {
  return shutdownButton;
 } 

 /**
  * 窗体装载的事件处理方法
  */
 private void formWindowOpened(java.awt.event.WindowEvent evt) {
  jSplitPane1.setDividerLocation(0.50);
  localPanel.getLocalDiskComboBox().setSelectedIndex(1);
  localPanel.getLocalDiskComboBox().setSelectedIndex(0);
 } 

 /**
  * 窗体大小调整的事件处理方法
  */
 private void formComponentResized(java.awt.event.ComponentEvent evt) {
  jSplitPane1.setDividerLocation(0.50);
 } 

 /**
  * 连接按钮的事件处理方法
  */
 private void linkButtonActionPerformed(java.awt.event.ActionEvent evt) {
  try {
   String server = serverTextField.getText(); // 获取服务器地址
   if (server == null) {
    return;
   }
   String portStr = portTextField.getText(); // 获取端口号
   if (portStr == null) {
    portStr = "21";
   }
   int port = Integer.parseInt(portStr.trim());
   String userStr = userTextField.getText(); // 获取用户名
   userStr = userStr == null ? "" : userStr.trim();
   String passStr = PassField.getText(); // 获取密码
   passStr = passStr == null ? "" : passStr.trim();
   cutLinkButton.doClick();
   ftpClient = new FtpClient();
   ftpClient.openServer(server.trim(), port); // 连接服务器
   ftpClient.login(userStr, passStr); // 登录服务器
   ftpClient.binary(); // 使用二进制传输模式
   if (ftpClient.serverIsOpen()) { // 如果连接成功
    CUT_LINK_ACTION.setEnabled(true); // 设置断开按钮可用
   } else { // 否则
    CUT_LINK_ACTION.setEnabled(false); // 设置断开按钮不可用
    return; // 并结束事件处理
   }
   // 设置本地资源管理面板的FTP连接信息
   localPanel.setFtpClient(server, port, userStr, passStr);
   // 设置上传按钮可用
   localPanel.getActionMap().get("uploadAction").setEnabled(true);
   ftpPanel.setFtpClient(ftpClient);// 设置FTP资源管理面板的FTP连接信息
   // 设置下载按钮可用
   ftpPanel.getActionMap().get("downAction").setEnabled(true);
   ftpPanel.refreshCurrentFolder();// 刷新FTP资源管理面板的当前文件夹
   queuePanel.startQueue(); // 启动任务队列线程
  } catch (Exception ex) {
   ex.printStackTrace();
  }
 } 

 /**
  * 连接FTP相关的文本框 和密码框的回车事件
  */
 private void LinkFTPKeyPressed(java.awt.event.KeyEvent evt) {
  if (evt.getKeyChar() == '\n') {
   linkButton.doClick();
  }
 } 

 public LocalPanel getLocalPanel() {
  return localPanel;
 } 

 public FtpPanel getFtpPanel() {
  return ftpPanel;
 } 

 public QueuePanel getQueuePanel() {
  return queuePanel;
 } 

 public UploadPanel getUploadPanel() {
  return uploadPanel;
 } 

 public DownloadPanel getDownloadPanel() {
  return downloadPanel;
 } 

 public FtpClient getFtpClient() {
  return ftpClient;
 } 

 /**
  * 设置FTP连接信息的方法,由FTP站点管理器调用
  */
 public void setLinkInfo(SiteInfoBean bean) {
  serverTextField.setText(bean.getServer()); // 设置主机地址
  portTextField.setText(bean.getPort() + ""); // 设置端口号
  userTextField.setText(bean.getUserName()); // 设置用户名
  PassField.setText(""); // 密码清空
  PassField.requestFocus(); // 密码框请求焦点
 }
}

整体界面如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java语言实现简单FTP软件 FTP连接管理模块实现(8)

    本文为大家介绍了FTP连接管理模块的实现方法,供大家参考,具体内容如下 (1)FTP连接 运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名.密码以及端口号后点击连接按钮开始连接FTP服务器,连接流程图如下图所示. 点击"连接"按钮后,会调用com.oyp.ftp.FTPClientFrame类的linkButtonActionPerformed(ActionEvent evt)方法,其主要代码程序如下 /** * 连接按钮的事件处理方法 */ riva

  • Java语言实现简单FTP软件 FTP本地文件管理模块实现(9)

    本文为大家分享了FTP本地文件管理模块的实现方法,供大家参考,具体内容如下 首先看一下界面: 1.本地文件列表的显示功能 将本地的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改当前文件目录会调用com.oyp.ftp.panel.local.LocalPanel类的listLocalFiles()方法,其主要代码如下 /** * 读取本地文件到表格的方法 */ private void listLocalFi

  • Java语言实现简单FTP软件 FTP远程文件管理模块实现(10)

    本文为大家分享了FTP远程文件管理模块的实现方法,供大家参考,具体内容如下 首先看一下界面: 1.远程FTP服务器端的文件列表的显示 将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改当前文件目录会调用com.oyp.ftp.panel.ftp.FtpPanel类的listFtpFiles(final TelnetInputStream list)方法,其主要代码如下 /** * 读取FTP文件到表格的方

  • Java语言实现简单FTP软件 FTP协议分析(1)

    FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下载是FTP最常用的两个功能.FTP使用传输层的TCP协议进行传输,因此客户端与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证.FTP的目标有以下目标: 提高文件的共享性 提供非直接地远程操纵计算机 避免用户因主机之间的文件存储系统的差异而导致的变化 为数据的传送提供可靠性和高

  • Java语言实现简单FTP软件 FTP软件远程窗口实现(6)

    本文为大家介绍了FTP软件远程窗口的实现方法,供大家参考,具体内容如下 1.首先看一下远程窗口的布局效果 2.看一下本地窗口实现的代码框架 3.远程窗口主要实现代码FtpPanel.java package com.oyp.ftp.panel.ftp; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException;

  • iis创建用户隔离模式FTP站点的方法

    为了方便大家使用,所建立的FTP站点不仅允许匿名用户访问,而且对主目录启用了"读取"和"写入"的权限.这样一来任何人都可以没有约束地任意读写,难免出现一团糟的情况.如果您使用IIS 6.0,只需创建一个'用户隔离'的FTP站点就可以有效解决此问题. "隔离用户"是IIS 6.0中包含的FTP组件的一项新增功能.配置成"用户隔离"模式的FTP站点可以使用户登录后直接进入属于该用户的目录中,且该用户不能查看或修改其他用户的目录.

  • Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)

    本文为大家分享了FTP上传下载管理模块的实现方法,供大家参考,具体内容如下 1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传的文件或文件夹,点击"上传"按钮,会触发com.oyp.ftp.panel.local.UploadAction类的actionPerformed(ActionEvent e)方法,其主要代码如下 /** * 上传

  • Java语言实现简单FTP软件 FTP软件效果图预览之下载功能(2)

    介绍完FTP协议后,来看看该软件完成后的效果图 客户端的主界面如上图所示,主要是分为以下几个界面: 数据输入界面:用来让用户输入服务器的地址,用户名,密码,端口号等. 站点菜单.本地菜单.远程菜单以及帮助菜单. 本地文件信息显示界面:主要是用来显示本地文件列表以及文件详情,以及对文件进行相关操作. 远程文件信息显示界面:主要是用来显示远程FTP服务器端文件列表以及文件详情,以及对文件进行相关操作. 上传下载队列显示界面:显示正在下载或者上传的文件线程的进度. 下载测试 1.下载前选好要下载到的目

  • Java语言实现简单FTP软件 辅助功能模块FTP站点管理实现(12)

    本文为大家分享了辅助功能模块FTP站点管理的实现方法,供大家参考,具体内容如下 1.FTP站点管理 点击"FTP站点管理"按钮,弹出对话框"FTP站点管理",如下图 1) 连接站点 在FTP站点管理面板上选好要连接的站点,点击"连接"按钮,则会将主机地址.端口号.用户名好,并将密码清空,如下图 到其主要代码如下 if (command.equals("link")) { // 如果单击的是连接按钮 frame.setLinkI

  • 如何编写一个创建FTP站点的函数?

    如何编写一个创建FTP站点的函数?Function ASTCreateFtpSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum, Computer, Start,LogFileDirectory)    Dim MSFTPSVC, FtpServer, NewFtpServer, NewDir    Dim Bindings, BindingString, NewBindings, Index, SiteObj, bDo

随机推荐