• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java语言实现简单FTP软件 FTP软件远程窗口实现(6)

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

作者:欧阳鹏 字体:[增加 减小] 来源:互联网 时间:2017-05-28

欧阳鹏 通过本文主要向大家介绍了java语言实现,java语言实现机制,java语言实现计算器,软件工程java语言实现,java语言是简单的等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文为大家介绍了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; 
import java.util.LinkedList; 
import java.util.Queue; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
 
import javax.swing.ActionMap; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.SwingUtilities; 
import javax.swing.Timer; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.table.TableModel; 
import javax.swing.table.TableRowSorter; 
import javax.swing.table.TableStringConverter; 
 
 
import sun.net.TelnetInputStream; 
import com.oyp.ftp.FTPClientFrame; 
import com.oyp.ftp.panel.FTPTableCellRanderer; 
import com.oyp.ftp.utils.FtpClient; 
import com.oyp.ftp.utils.FtpFile; 
 
public class FtpPanel extends javax.swing.JPanel { 
 
 FtpClient ftpClient; 
 private javax.swing.JButton createFolderButton; 
 private javax.swing.JButton delButton; 
 private javax.swing.JButton downButton; 
 javax.swing.JTable ftpDiskTable; 
 private javax.swing.JLabel ftpSelFilePathLabel; 
 private javax.swing.JScrollPane scrollPane; 
 private javax.swing.JToolBar toolBar; 
 private javax.swing.JButton refreshButton; 
 private javax.swing.JButton renameButton; 
 FTPClientFrame frame = null; 
 Queue<Object[]> queue = new LinkedList<Object[]>(); 
 private DownThread thread; 
 
 public FtpPanel() { 
 initComponents(); 
 } 
 
 public FtpPanel(FTPClientFrame client_Frame) { 
 frame = client_Frame; 
 initComponents(); 
 } 
 
 private void initComponents() { 
 ActionMap actionMap = getActionMap(); 
 actionMap.put("createFolderAction", new CreateFolderAction(this, 
  "创建文件夹", null)); 
 actionMap.put("delAction", new DelFileAction(this, "删除", null)); 
 actionMap.put("refreshAction", new RefreshAction(this, "刷新", null)); 
 actionMap.put("renameAction", new RenameAction(this, "重命名", null)); 
 actionMap.put("downAction", new DownAction(this, "下载", null)); 
 
 java.awt.GridBagConstraints gridBagConstraints; 
 
 toolBar = new javax.swing.JToolBar(); 
 delButton = new javax.swing.JButton(); 
 renameButton = new javax.swing.JButton(); 
 createFolderButton = new javax.swing.JButton(); 
 downButton = new javax.swing.JButton(); 
 refreshButton = new javax.swing.JButton(); 
 scrollPane = new JScrollPane(); 
 ftpDiskTable = new JTable(); 
 ftpDiskTable.setDragEnabled(true); 
 ftpSelFilePathLabel = new javax.swing.JLabel(); 
 
 setBorder(javax.swing.BorderFactory.createTitledBorder(null, "远程", 
  javax.swing.border.TitledBorder.CENTER, 
  javax.swing.border.TitledBorder.ABOVE_TOP)); 
 setLayout(new java.awt.GridBagLayout()); 
 
 toolBar.setRollover(true); 
 toolBar.setFloatable(false); 
 
 delButton.setText("删除"); 
 delButton.setFocusable(false); 
 delButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); 
 delButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 
 delButton.setAction(actionMap.get("delAction")); 
 toolBar.add(delButton); 
 
 renameButton.setText("重命名"); 
 renameButton.setFocusable(false); 
 renameButton.setAction(actionMap.get("renameAction")); 
 toolBar.add(renameButton); 
 
 createFolderButton.setText("新文件夹"); 
 createFolderButton.setFocusable(false); 
 createFolderButton.setAction(actionMap.get("createFolderAction")); 
 toolBar.add(createFolderButton); 
 
 downButton.setText("下载"); 
 downButton.setFocusable(false); 
 downButton.setAction(actionMap.get("downAction")); 
 toolBar.add(downButton); 
 
 refreshButton.setText("刷新"); 
 refreshButton.setFocusable(false); 
 refreshButton.setAction(actionMap.get("refreshAction")); 
 toolBar.add(refreshButton); 
 
 gridBagConstraints = new java.awt.GridBagConstraints(); 
 gridBagConstraints.gridx = 0; 
 gridBagConstraints.gridy = 0; 
 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 
 gridBagConstraints.weightx = 1.0; 
 add(toolBar, gridBagConstraints); 
 
 ftpDiskTable.setModel(new FtpTableModel()); 
 ftpDiskTable.setShowHorizontalLines(false); 
 ftpDiskTable.setShowVerticalLines(false); 
 ftpDiskTable.getTableHeader().setReorderingAllowed(false); 
 ftpDiskTable.setDoubleBuffered(true); 
 ftpDiskTable.addMouseListener(new java.awt.event.MouseAdapter() { 
  public void mouseClicked(java.awt.event.MouseEvent evt) { 
  ftpDiskTableMouseClicked(evt); 
  } 
 }); 
 scrollPane.setViewportView(ftpDiskTable); 
 scrollPane.getViewport().setBackground(Color.WHITE); 
 //设置渲染本地资源和FTP资源表格组件的渲染器 
 ftpDiskTable.getColumnModel().getColumn(0).setCellRenderer( 
  FTPTableCellRanderer.getCellRanderer()); 
 //RowSorter 的一个实现,它使用 TableModel 提供排序和过滤操作。 
 TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>( 
  ftpDiskTable.getModel()); 
 TableStringConverter converter = new TableConverter(); 
 //设置负责将值从模型转换为字符串的对象。 
 sorter.setStringConverter(converter); 
 //设置 RowSorter。RowSorter 用于提供对 JTable 的排序和过滤。 
 ftpDiskTable.setRowSorter(sorter); 
 /** 
  * 颠倒指定列的排序顺序。调用此方法时,由子类提供具体行为。 
  * 通常,如果指定列已经是主要排序列,则此方法将升序变为降序(或将降序变为升序); 
  * 否则,使指定列成为主要排序列,并使用升序排序顺序。如果指定列不可排序,则此方法没有任何效果。 
  */ 
 sorter.toggleSortOrder(0); 
 
 gridBagConstraints = new java.awt.GridBagConstraints(); 
 gridBagConstraints.gridx = 0; 
 gridBagConstraints.gridy = 2; 
 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 
 gridBagConstraints.weightx = 1.0; 
 gridBagConstraints.weighty = 1.0; 
 add(scrollPane, gridBagConstraints); 
 
 ftpSelFilePathLabel.setBorder(javax.swing.BorderFactory 
  .createEtchedBorder()); 
 gridBagConstraints = new java.awt.GridBagConstraints(); 
 gridBagConstraints.gridx = 0; 
 gridBagConstraints.gridy = 3; 
 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 
 add(ftpSelFilePathLabel, gridBagConstraints); 
 } 
 
 /** 
 * 表格单击或双击事件的处理方法。 
 */ 
 private void ftpDiskTableMouseClicked(java.awt.event.MouseEvent evt) { 
 int selectedRow = ftpDiskTable.getSelectedRow(); 
 Object value = ftpDiskTable.getValueAt(selectedRow, 0); 
 if (value instanceof FtpFile) { 
  FtpFile selFile = (FtpFile) value; 
  ftpSelFilePathLabel.setText(selFile.getAbsolutePath()); 
  if (evt.getClickCount() >= 2) { //双击鼠标 
  if (selFile.isDirectory()) { 
   try { 
   ftpClient.cd(selFile.getAbsolutePath()); 
   listFtpFiles(ftpClient.list()); 
   } catch (IOException ex) { 
   ex.printStackTrace(); 
   } 
  } 
  } 
 } 
 } 
 
 /** 
 * 读取FTP文件到表格的方法 
 * @param list 
 *  读取FTP服务器资源列表的输入流 
 */ 
 public synchronized void listFtpFiles(final TelnetInputStream list) { 
 // 获取表格的数据模型 
 final DefaultTableModel model = (DefaultTableModel) ftpDiskTable 
  .getModel(); 
 model.setRowCount(0); 
 // 创建一个线程类 
 Runnable runnable = new Runnable() { 
  public synchronized void run() { 
  ftpDiskTable.clearSelection(); 
  try { 
   String pwd = getPwd(); // 获取FTP服务器的当前文件夹 
   model.addRow(new Object[] { new FtpFile(".", pwd, true), 
    "", "" }); // 添加“.”符号 
   model.addRow(new Object[] { new FtpFile("..", pwd, true), 
    "", "" }); // 添加“..”符号 
   /* 
   byte[]names=new byte[2048]; 
   int bufsize=0; 
   b



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java语言实现简单FTP软件 辅助功能模块FTP站点管理实现(12)
  • Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)
  • Java语言实现简单FTP软件 FTP远程文件管理模块实现(10)
  • Java语言实现简单FTP软件 FTP本地文件管理模块实现(9)
  • Java语言实现简单FTP软件 FTP连接管理模块实现(8)
  • Java语言实现简单FTP软件 FTP上传下载队列窗口实现(7)
  • Java语言实现简单FTP软件 FTP软件远程窗口实现(6)
  • Java语言实现简单FTP软件 FTP软件本地窗口实现(5)
  • Java语言实现简单FTP软件 FTP软件主界面(4)
  • Java语言实现简单FTP软件 FTP软件效果图预览之上传功能(3)

相关文章

  • 2017-05-28java并发容器CopyOnWriteArrayList实现原理及源码分析
  • 2017-05-28Java自定义注解实现Redis自动缓存的方法
  • 2017-05-28Java语言实现简单FTP软件 FTP软件效果图预览之下载功能(2)
  • 2017-05-28Java微信公众平台开发(6) 微信开发中的token获取
  • 2017-05-28Java用 Rhino/Nashorn 代替第三方 JSON 转换库
  • 2017-05-28Java构造方法实例详解(动力节点java学院整理)
  • 2017-05-28java 虚拟机中对象访问详解
  • 2017-05-28详解Spring Boot使用redis实现数据缓存
  • 2017-05-28Java基于正则表达式实现的替换匹配文本功能【经典实例】
  • 2017-05-28java中GZIP压缩解压类使用实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解Http请求中Content-Type讲解以及在Spring MVC中的应用
    • Spring Boot数据库链接池配置方法
    • java 中JXL操作Excel实例详解
    • ssh框架实现文件上传下载实例代码
    • Spring Batch读取txt文件并写入数据库的方法教程
    • spring mvc+localResizeIMG实现HTML5端图片压缩上传
    • javaweb实现文件上传示例代码
    • Java二分法查找_动力节点Java学院整理
    • 10个Java程序员熟悉的面向对象设计原则
    • Spring boot学习教程之快速入门篇

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有