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

📄 mytablemodel.java

📁 用c编写的数据内部排序方法,可在窗口中选择多种排序方法,如快排,冒泡,折半插入等,还可以选择排序数据的个数,初态,控制等.
💻 JAVA
字号:
package main.myClass;

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
import main.*;

public class myTableModel extends AbstractTableModel implements Observer{
	myHashtable source,result;
	String[][] data;
	String[] columnNames;
	int current=0,max=10;
	
	public myTableModel(myHashtable source){
		init(source);
	}
	
	public void init(myHashtable source){
		this.source=source;
		columnNames=new String[source.size()+1];
		data=new String[max][source.size()+1];
		columnNames[0]="次序/个数";
		int size=source.size();
		for(int i=1;i<size+1;i++)
			columnNames[i]=(source.getKey(i-1));	
		fireTableStructureChanged();
	}
	
	public int getColumnCount() {
		return columnNames.length;
	}
	
	public int getRowCount() {
		return current;
	}
	
	public String getColumnName(int col) {
		return columnNames[col];
	}
	
	public Object getValueAt(int row, int col) {
		if(row<current)
			return data[row][col];
		else return null;
	}	
	
	public void update(Observable ob,Object o){
		result=((ResultPanel)ob).result;
		String te;
		data[current][0]=((ResultPanel)o).order+"/"+((ResultPanel)o).number;
		for(int i=1;i<columnNames.length;i++){
			if((te=result.get(columnNames[i]))!=null)
				data[current][i]=te;
		}	
		current++;
		if(current>max){
			String[][] temp=new String[(int)(max*3/2)][source.size()+1];
			for(int i=0;i<max;i++){
				data[i][0]=temp[i][0];
				data[i][1]=temp[i][1];
			}
			data=temp;
			max=(int)(max*3/2);
		}
		fireTableRowsInserted(current-1,current-1); 
	}
}

⌨️ 快捷键说明

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