欧阳鹏 通过本文主要向大家介绍了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)