2008年7月20日 星期日

[JAVA] JTABLE 更新範例

作者 slayer.bbs@bbs.wretch.cc (foolish), 看板 java
標題 Re: [問題] JTable row 數目更新
時間 無名小站 (Wed Jul 5 19:27:36 2006)
轉信 ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.ee.ttu!netnews.csie.nc



import javax.swing.table.AbstractTableModel;

public class MyTableModel extends AbstractTableModel {
private String[] columnNames = new String[] { "Name", "Size","AccessRight" };
private Object[][] rowData = new Object[][] { new Object[] { "XD", "", ""} };
public String getColumnName(int col) { return columnNames[col].toString(); }
public int getRowCount() { return rowData.length; }
public int getColumnCount() { return columnNames.length; }
public Object getValueAt(int row, int col) { return rowData[row][col]; }
public boolean isCellEditable(int row, int col) { return true; }
public void setValueAt(Object value, int row, int col) {
rowData[row][col] = value;
fireTableCellUpdated(row, col); }
public void setData() {
// for test
this.rowData = new Object[][] {
new Object[] { "orz", "xd", "hah" },
new Object[] { "orz", "xd", "hah" },
new Object[] { "orz", "xd", "hah" },
new Object[] { "orz", "xd", "hah" },
new Object[] { "orz", "xd", "hah" } };
this.fireTableDataChanged(); }
}

創建TABLE

model = new MyTableModel();
table =new JTable(model);
table.setPreferredScrollableViewportSize(new Dimension(300,200)); model.addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e) {
table.updateUI();
}});


之後再去呼叫紅色部分即可!!


=======================================
後來我自己將紅色部分改成
public void setData(Object[][] data) {
this.rowData = data.clone();
this.fireTableDataChanged(); }

沒有留言: