第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JTable如何在插入刪除或更新數(shù)據(jù)后刷新表模型。

JTable如何在插入刪除或更新數(shù)據(jù)后刷新表模型。

慕慕森 2019-08-12 16:28:44
JTable如何在插入刪除或更新數(shù)據(jù)后刷新表模型。這是我的jTableprivate JTable getJTable() {     String[] colName = { "Name", "Email", "Contact No. 1", "Contact No. 2",             "Group", "" };     if (jTable == null) {         jTable = new JTable() {             public boolean isCellEditable(int nRow, int nCol) {                 return false;             }         };     }     DefaultTableModel contactTableModel = (DefaultTableModel) jTable            .getModel();     contactTableModel.setColumnIdentifiers(colName);     jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);     return jTable;}我將調(diào)用此方法從數(shù)據(jù)庫中檢索數(shù)據(jù)并將其放入表模型中public void setUpTableData() {     DefaultTableModel tableModel = (DefaultTableModel) jTable.getModel();     ArrayList<Contact> list = new ArrayList<Contact>();     if (!con.equals(""))         list = sql.getContactListsByGroup(con);     else         list = sql.getContactLists();     for (int i = 0; i < list.size(); i++) {         String[] data = new String[7];             data[0] = list.get(i).getName();             data[1] = list.get(i).getEmail();             data[2] = list.get(i).getPhone1();             data[3] = list.get(i).getPhone2();             data[4] = list.get(i).getGroup();             data[5] = list.get(i).getId();         tableModel.addRow(data);     }     jTable.setModel(tableModel);}目前我在更新表數(shù)據(jù)后使用此方法刷新表。我先清理一下表格DefaultTableModel tableModel = (DefaultTableModel) jTable.getModel();tableModel.setRowCount(0);然后再次重組表模型,以便刷新jTable。但我在想是否有最好的做法或更好的方法呢?
查看完整描述

3 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您想通知您JTable有關(guān)數(shù)據(jù)的更改,請(qǐng)使用
tableModel.fireTableDataChanged()

文檔

通知所有偵聽器表中行中的所有單元格值都可能已更改。行數(shù)也可能已更改,JTable應(yīng)從頭開始重繪表。假設(shè)表的結(jié)構(gòu)(按列的順序)是相同的。


查看完整回答
反對(duì) 回復(fù) 2019-08-12
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

更快的方法是:

    jTable.repaint(); // Repaint all the component (all Cells).

當(dāng)一個(gè)或幾個(gè)細(xì)胞改變時(shí)的優(yōu)化方式:

    ((AbstractTableModel) jTable.getModel()).fireTableCellUpdated(x, 0); // Repaint one cell.


查看完整回答
反對(duì) 回復(fù) 2019-08-12
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

試試這個(gè)

public void setUpTableData() {
    DefaultTableModel tableModel = (DefaultTableModel) jTable.getModel();

    /**
    * additional code.
    **/
    tableModel.setRowCount(0);
    /**/
    ArrayList<Contact> list = new ArrayList<Contact>();
    if (!con.equals(""))
        list = sql.getContactListsByGroup(con);
    else
        list = sql.getContactLists();
    for (int i = 0; i < list.size(); i++) {
        String[] data = new String[7];

        data[0] = list.get(i).getName();
        data[1] = list.get(i).getEmail();
        data[2] = list.get(i).getPhone1();
        data[3] = list.get(i).getPhone2();
        data[4] = list.get(i).getGroup();
        data[5] = list.get(i).getId();

        tableModel.addRow(data);
    }
    jTable.setModel(tableModel);
    /**
    * additional code.
    **/
    tableModel.fireTableDataChanged();
    /**/}


查看完整回答
反對(duì) 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 1727 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)