欧阳鹏 通过本文主要向大家介绍了java语言实现,java语言实现机制,java语言实现计算器,软件工程java语言实现,java语言是简单的等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
本文为大家介绍了FTP软件本地窗口的实现方法,供大家参考,具体内容如下
1、首先看一下本地窗口的布局效果

2、看一下本地窗口实现的代码框架

3、本地窗口的具体实现代码LocalPanel.java
package com.oyp.ftp.panel.local;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.io.File;
import java.io.IOException;
import java.util.Date;
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.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.table.TableStringConverter;
import com.oyp.ftp.FTPClientFrame;
import com.oyp.ftp.panel.FTPTableCellRanderer;
import com.oyp.ftp.panel.ftp.TableConverter;
import com.oyp.ftp.utils.DiskFile;
public class LocalPanel extends javax.swing.JPanel {
Queue<Object[]> queue = new LinkedList<Object[]>();
private UploadThread uploadThread = null;
private Desktop desktop = null;
private javax.swing.JButton createFolderButton;
private javax.swing.JButton delButton;
private javax.swing.JScrollPane scrollPane;
private javax.swing.JToolBar.Separator jSeparator1;
private javax.swing.JToolBar toolBar;
private javax.swing.JComboBox localDiskComboBox;
javax.swing.JTable localDiskTable;
javax.swing.JLabel localSelFilePathLabel;
private javax.swing.JButton renameButton;
private javax.swing.JButton uploadButton;
private TableRowSorter<TableModel> sorter;
FTPClientFrame frame = null;
public LocalPanel() {
initComponents();
}
public LocalPanel(FTPClientFrame client_Frame) {
frame = client_Frame;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
initComponents();
}
/**
* 界面布局与初始化方法
*/
private void initComponents() {
ActionMap actionMap = getActionMap();
actionMap.put("delAction", new DelFileAction(this, "删除", null));
actionMap.put("renameAction", new RennameAction(this, "重命名", null));
actionMap.put("createFolderAction", new CreateFolderAction(this,
"新建文件夹", null));
actionMap.put("uploadAction", new UploadAction(this, "上传", null));
actionMap.put("refreshAction", new RefreshAction(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();
uploadButton = new javax.swing.JButton();
jSeparator1 = new javax.swing.JToolBar.Separator();
localDiskComboBox = new javax.swing.JComboBox();
localDiskComboBox.setPreferredSize(new Dimension(100, 25));
scrollPane = new javax.swing.JScrollPane();
localDiskTable = new javax.swing.JTable();
localDiskTable.setDragEnabled(true);
localSelFilePathLabel = new javax.swing.JLabel();
/**
* 向现有边框添加一个标题,使其具有指定的位置和默认字体和文本颜色(由当前外观确定)。
* TitledBorder.CENTER: 将标题文本置于边框线的中心。
* TitledBorder.ABOVE_TOP: 将标题置于边框顶端线的上部。
*/
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.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);
uploadButton.setText("上传");
uploadButton.setFocusable(false);
uploadButton.setAction(actionMap.get("uploadAction"));
toolBar.add(uploadButton);
JButton refreshButton = new JButton();
refreshButton.setText("刷新");
refreshButton.setFocusable(false);
refreshButton.setAction(actionMap.get("refreshAction"));
toolBar.add(refreshButton);
toolBar.add(jSeparator1);
//File.listRoots():列出可用的文件系统根。
localDiskComboBox.setModel(new DefaultComboBoxModel(File.listRoots()));
localDiskComboBox.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
localDiskComboBoxItemStateChanged(evt);
}
});
toolBar.add(localDiskComboBox);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
add(toolBar, gridBagConstraints);
localDiskTable.setModel(new LocalTableModel());
localDiskTable.setShowHorizontalLines(false);
localDiskTable.setShowVerticalLines(false);
localDiskTable.getTableHeader().setReorderingAllowed(false);
localDiskTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
localDiskTableMouseClicked(evt);
}
});
scrollPane.setViewportView(localDiskTable);
scrollPane.getViewport().setBackground(Color.WHITE);
//设置渲染本地资源和FTP资源表格组件的渲染器
localDiskTable.getColumnModel().getColumn(0).setCellRenderer(
FTPTableCellRanderer.getCellRanderer());
//RowSorter 的一个实现,它使用 TableModel 提供排序和过滤操作。
sorter = new TableRowSorter<TableModel>(localDiskTable.getModel());
TableStringConverter converter = new TableConverter();
//设置负责将值从模型转换为字符串的对象。
sorter.setStringConverter(converter);
//设置 RowSorter。RowSorter 用于提供对 JTable 的排序和过滤。
localDiskTable.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);
localSelFilePathLabel.setBorder(javax.swing.BorderFactory
.createEtchedBorder());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
add(localSelFilePathLabel, gridBagConstraints);
}
/**
* 本地磁盘下拉选择框的选项改变事件处理方法,由事件监听器调用
*/
private void localDiskComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED) {
Object item = evt.getItem(); // 获取选择的下拉列表的选项
if (item instanceof File) { // 如果该选项是File类的实例对象
您可能想查找下面的文章:
- 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)

