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

📄 filepaneltableimp.java

📁 一个用APPLET写的文件上传系统
💻 JAVA
字号:
package wjhk.jupload.filepanel;


import java.io.File;

import java.awt.BorderLayout;
import java.awt.Panel;
import java.awt.dnd.DropTarget;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumnModel;

import wjhk.jupload.DnDListener;
import wjhk.jupload.FilePanel;
import wjhk.jupload.JUploadPanel;

public class FilePanelTableImp extends Panel implements FilePanel{

  //------------- INFORMATION --------------------------------------------
  public static final String TITLE = "JUpload FilePanelTableImp";
  public static final String DESCRIPTION = "FilePanel Table Implementation.";
  public static final String AUTHOR = "William JinHua Kwong";

  public static final double VERSION = 1.0;
  public static final String LAST_MODIFIED = "07 February 2004";

  //------------- VARIABLES ----------------------------------------------
  private JTable jtable;
  private FilePanelDataModel model;

  public FilePanelTableImp(JUploadPanel jup){
    setLayout(new BorderLayout());

    jtable = new FilePanelJTable();

    model = new FilePanelDataModel();
    jtable.setModel(model);

    TableColumnModel colModel = jtable.getColumnModel();
    for (int i = 0; i < model.getColumnCount(); i++) {
      colModel.getColumn(i).setPreferredWidth(model.getColumnSize(i));
    }

    JScrollPane scrollPane = new JScrollPane(jtable);
    add( scrollPane, BorderLayout.CENTER );

    DropTarget dropTarget = new DropTarget(scrollPane, new DnDListener(jup));
  }

  public void addFiles(File[] f){
    if(null != f){
      for(int i = 0; i < f.length; i++){
        addDirectoryFiles(f[i]);
      }
    }
  }

  private void addDirectoryFiles(File f){
    if(!f.isDirectory()){
      addFileOnly(f);
    }else{
      File[] dirFiles = f.listFiles();
      for(int i = 0 ; i < dirFiles.length; i++){
        if(dirFiles[i].isDirectory()){
          addDirectoryFiles(dirFiles[i]);
        }else{
          addFileOnly(dirFiles[i]);
        }
      }
    }
  }

  private void addFileOnly(File f){
    // Make sure we don't select the same file twice.
    if (!model.contains(f)) {
      model.addFile(f);
    }
  }

  public File[] getFiles(){
    File[] files = new File[getFilesLength()];
    for(int i = 0; i < files.length; i++){
      files[i] = model.getFileAt(i);
    }
    return files;
  }

  public int getFilesLength(){
    return jtable.getRowCount();
  }

  public void removeSelected(){
    int[] rows = jtable.getSelectedRows();
    for(int i = rows.length - 1; 0 <= i; i--){
      model.removeRow(rows[i]);
    }
  }

  public void removeAll(){
    for (int i = getFilesLength() - 1; 0 <= i; i--) {
      model.removeRow(i);
    }
  }

}

⌨️ 快捷键说明

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