📄 mytablemodel.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 + -