downloadstablemodel.java

来自「JAVA源码」· Java 代码 · 共 66 行

JAVA
66
字号
/**
 * @(#)DownloadsTableModel.java
 *
 *
 * @author 
 * @version 1.00 2008/6/7
 */
import java.util.*;
import java.swing.*;
import java.swing.table.*;

class DownloadsTableModel extends AbstractTableModel implements Observer{
	private static final String[] columnNames={"URL","Size","Progress","Status"};
	private static final Class[] colunmClasses={String.class,String.class,JProgressBar.class,String.class};
	private ArrayList<Download> downloadList=new ArrayList<download>();
	private void addDownload(Download download){
		download.addObserver(this);
		downloadList.add(download);
		fireTablRowsInserted(getRowCount()-1,getRowCount()-1);
		
	}
	
	public Download getDownload (int row){
		return downloadList.get(row);
	}
	
	public void clearDownload(int row){
		download.remove(row);
		fireTableRowsDeleted(row,row);
	}
	
	public int getColumnCount(){
		return columnNames.length;
	}
	
	public String getColumnName(int col){
		return columnNames[col];
	}
	
	public Class getColumnClass(int col){
		return columnClasses[col];
	}
	
	public int getRowCount(){
		return download.size();
	}
	
	public Object getValueAt(int row,int col){
		Download download=downloadList.get(row);
		switch(col){
			case 0:return download.getUrl();
			case 1:int size=download.getSize();
			       return (size==-1)?"":Integer.toString(size);
			case 2:return new Float(download.getProgress());
			case 3:return Download.STATUSES[download.getStatus()];
		}
		return "";
	}
	
	public void update(Observer o,Object arg){
		int index=downloadList.indexOf(o);
		fireTableRowsUpdated(index,index);
	}

 
}

⌨️ 快捷键说明

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