我已经用了:
addNotify();
jTable.revalidate();
jTable.repaint();
jTable.updateUI();
可是不能刷新。
我的是 jtable是:
class TableModel extends AbstractTableModel
addNotify();
jTable.revalidate();
jTable.repaint();
jTable.updateUI();
可是不能刷新。
我的是 jtable是:
class TableModel extends AbstractTableModel
按钮监听器执行actionPerformed方法,该方法中调用JTable所在类的方法,这个方法中,调用tableModel的fireTableStructureChanged()方法就可以了。
当然,必须先定义tableModel。如下:
ArrayList cards=new ArrayList();
cards=getCardFromDatabase(); //从数据库获取数据
myModel=new AbstractTableModel(){
public int getColumnCount(){
return card_title.length;
}
public int getRowCount(){
if(cards==null||cards.size()==0)
return 0;
return cards.size();
}
public Object getValueAt(int row,int column){
if(cards==null||cards.size()==0)
return "";
return ((ArrayList)cards.get(row)).get(column);
}
public String getColumnName(int column){
return card_title[column];
}
public Class getColumnClass(int col){
return getValueAt(0,col).getClass();
}
public boolean isCellEditable(int row,int column){
return false;
}
};
JTable cardTable=new JTable(cardModel);
JScrollPane spane=new JScrollPane(cardTable);
panel.add(spane,BorderLayout.CENTER);//在主程序中,有个方法,调用这个方法就可以刷新了
public void listCards(){
cards=getNewCardData();
myModel.fireTableStructureChanged();
}