row data[I][0]= RS . getstring(" exam _ No ");
row data[I][1]= RS . getstring(" student _ ID ");
row data[I][2]= RS . getstring(" student _ Name ");
row data[I][3]= RS . getstring(" class _ NO ");
rowData[i][4] = rs.getString("課程名稱");
row data[I][5]= RS . getstring(" result ");
i++;
}
//在此添加以下代碼:
xxxxxxxxxxxx _ model . firetable data changed();
//或者:
table . set model(new xxxxxxxxxx table model(row data,.......));
溶液1:
如果您的表模型是從AbstractTableModel擴展而來的,
表格數據更改後,調用模型的fireTableDataChanged()方法;
解決方案2:
重置表格模型。
例如:
table . set model(new DefaultTableModel(data,column names));
下面是我寫的壹個例子。
導入Java . awt . *;
導入Java . awt . event . *;
導入javax . swing . *;
導入javax . swing . table . *;
公共類JTableTest
{
公共靜態void main(String args[])
{
JTableTestFrame f = new JTableTestFrame();
f . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);
}
}
JTableTestFrame類擴展了JFrame
{
私有JTable表= null
private ArrayTableModel ATM = null;
private JButton reload = null
private final static String[]column names = { " Number "," addend "," augend "," sum " };
private int start = 0;
公共JTableTestFrame()
{
ATM = new ArrayTableModel(column names);
table = new JTable(ATM);
Reload = new JButton(" Reload ");
reload.addActionListener(新的ActionListener()
{
公共無效操作已執行(操作事件e)
{
重載();
}
});
JPanel p = new JPanel(new BorderLayout());
p.add(new JLabel("JTable Test "),BorderLayout。北);
p.add(new JScrollPane(table),BorderLayout。中心);
p.add(reload,BorderLayout。南);
this . add(p);
this.setSize(300,300);
this . set visible(true);
}
公共void重載()
{
int rows = 10;
int cols = columnNames.length
Object[][]data =新對象[rows][cols];
for(int I = 0;我& lt行;i++)
{
start+= I;
data[I][0]= start;
data[I][1]= start+1;
data[I][2]= start+2;
data[I][3]= start * 2+3;
}
atm.setData(數據);
ATM . firetabledatachanged();
}
}
類ArrayTableModel擴展了AbstractTableModel
{
私有字符串[]column names = null;
私有對象[][]數據=空;
public array table model(String[]column names)
{
this . column names = column names;
this.data =新對象[1][column names . length];
}
public array table model(Object[][]data,String[] columnNames)
{
this.data = data
this . column names = column names;
}
公共對象getValueAt(int r,int c)
{
return this . data[r][c];
}
public int getRowCount()
{
返回this . data . length;
}
public int getColumnCount()
{
返回this . column names . length;
}
public String[]get column names(){
返回列名;
}
公共字符串getColumnName(int c)
{
返回this.columnNames[c]。toString();
}
public void set column names(String[]column names){
this . column names = column names;
}
公共對象[][] getData() {
返回數據;
}
public void setData(Object[][]data){
this.data = data
}
}