版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、綜合了下,總結 DefaultTableModel的內(nèi)部構造(2007-05-23 20:46:10轉載分類:JAVA專題我們曾提到過 DefaultTableModel類,并說明了此類是繼承 AbstractTableModel抽象類而 來,且實現(xiàn)了 getColumnCount( , getRowCount(與getValueAt(3個方法。因此在實際的使用 上,DefaultTableModel比AbstractTableModel要來得簡單許多,也較常被拿來使用 DefaultTableModel內(nèi)部使用Vector來使用表格的數(shù)據(jù),若佻所要顯示的表格格式是比較單純 的變化,筆者建議使
2、用DefaultTableModel類會來得方便也簡單許多。若佻所要顯示的數(shù)據(jù)模式非常復雜,例如我們所舉的成績表格外加學生選課信息等,像這類的表格通常顯示的信息會 因人面異,因此使用AbstractTableModel會比較容易設計些。下面是DefaultTableModel的構造函數(shù):DefaultTableModel(:建立一個 DefaultTableModel,里面沒有任何數(shù)據(jù).DefaultTableModel(int numRows,int numColumns: 建立一個指定行列數(shù)的 DefaultTableModel.DefaultTableModel(Object口口 dat
3、a,Object columnNames: 建立一個 DefaultTableModel ,輸 入數(shù)據(jù)格式為 Object Array.系統(tǒng)會自動調(diào)用setDataVector(方法來設置數(shù)據(jù)。DefaultTableModel(Object口 columnNames,int numRows: 建立一個 DefaultTableModel ,并具 有ColumnHeader名稱與行數(shù)信息。DefaultTableModel(Vector columnNames,int numRows: 建立一個 DefaultTableModel ,并具 有columnHeader名稱與行數(shù)信息。Defaul
4、tTableModel(Vector data,Vector columnNames:建立一個 DefaultTableModel ,輸入數(shù) 據(jù)格式為Vector.系統(tǒng)會自動調(diào)用setDataVector(方法來設置數(shù)據(jù)。DefaultTableModel類提供相當多好用的方法,如之前我們談論過的 getColumnCount(,getRowCount(,getValueAt(,isCellEditable(setValueAt(等方法,均可直接使用。且 DefaultTableModel也提供了 addColumn(與 addRow(等方法,可讓我們隨時增加表格的數(shù)據(jù)。下面我們就舉一個動態(tài)增
5、加表格字段的例 子:import java.awt.*;import java.awt.event.*;import java.util.Vector;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;public class AddRemoveCells implements ActionListenerJTable table = null;DefaultTableModel defaultModel = null;public AddRemoveCells( JFrame f = new
6、JFrame(;String口name = "字段 1","字段 2","字段 3","字段 4","字段 5"String口data = new String55;int value =1;for(int i=0; ifor(int j=0; jdatajString.valueOf(value+;defaultModel = new DefaultTableModel(data,name;table=new JTable(defaultModel;table.setPreferredScro
7、llableViewportSize(newDimension(400, 80;JScrollPane s = new JScrollPane(table;JPanel panel = new JPanel(;JButton b = new JButton("增加行";panel.add(b;b.addActionListener(this;b = new JButton("增加列";panel.add(b;b.addActionListener(this;b = new JButton("刪除行";panel.add(b;b.add
8、ActionListener(this;b = new JButton("刪除列";panel.add(b;b.addActionListener(this;Container contentPanef.getContentPane(;contentPane.add(panel, BorderLayout.NORTH;contentPane.add(s, BorderLayout.CENTER;f.setTitle("AddRemoveCells"f.pack(;f.setVisible(true;f.addWindowListener(new Wind
9、owAdapter( public void windowClosing(WindowEvent e System.exit(0;/*要刪除列必須使用TableColumnModel界面定義的removeColumn(T法。* 因此我閃先由JTable類的getColumnModel(方法取* TableColumnModel 對象,再由 TableColumnModel 的 getColumn(* 方法取得要刪除列的TableColumn.此TableColumn對象當作是* removeColumn(的參數(shù)。刪除此列完畢后必須重新設置列數(shù),* 也就是使用 DefaultTableModel
10、 的 setColumnCount(方法來設置。*/public void actionPerformed(ActionEvent eif(e.getActionCommand(.equals(" 增加列"defaultModel.addColumn("增加列";if(e.getActionCommand(.equals("增加行"defaultModel.addRow(new Vector(;if(e.getActionCommand(.equals(" 刪除列"int columncount = default
11、Model.getColumnCount(-1;if(columncount >= 0/ 若 columncount<0 代表已經(jīng)沒有任何歹U了。TableColumnModel columnModel = table.getColumnModel(;TableColumn tableColumn = columnModel.getColumn(columncount;columnModel.removeColumn(tableColumn;defaultModel.setColumnCount(columncount;if(e.getActionCommand(.equals("刪除行"int rowcountdefaultModel.getRowCount(-1;/getRowCount返回行數(shù),rowcount<0代表已經(jīng)沒有任何行了。if(rowcount >= 0defaultModel.removeRow(rowcount;defaultModel.setRowCount(rowc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年苗圃技術員職務聘用合同樣本
- 二零二五年度二零二五年度物流運輸退款合同協(xié)議正規(guī)范本
- 二零二五年度建筑渣土運輸與城市景觀提升合作合同3篇
- 2025年度建筑工程勞務分包合同
- 2025年度女方離婚協(xié)議中子女撫養(yǎng)權變更及監(jiān)護責任調(diào)整合同4篇
- 2025年度鋼構工程施工質量保證合同范本
- 2025年度航空航天派遣員工勞動合同樣本4篇
- 二零二五版美甲店產(chǎn)品進出口代理合同3篇
- 駐馬店幼兒師范高等專科學?!渡缃幻襟w》2023-2024學年第一學期期末試卷
- 2025年度鋼材質量檢測及認證服務合同
- 第十七章-阿法芙·I·梅勒斯的轉變理論
- 焊接機器人在汽車制造中應用案例分析報告
- 合成生物學在生物技術中的應用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財務分析報告
- 無違法犯罪記錄證明申請表(個人)
- 大學生勞動教育PPT完整全套教學課件
- 繼電保護原理應用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實施完整版
- 2023年Web前端技術試題
評論
0/150
提交評論