版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、綜合了下,總結(jié) DefaultTableModel的內(nèi)部構(gòu)造(2007-05-23 20:46:10轉(zhuǎn)載分類(lèi):JAVA專(zhuān)題我們?cè)岬竭^(guò) DefaultTableModel類(lèi),并說(shuō)明了此類(lèi)是繼承 AbstractTableModel抽象類(lèi)而 來(lái),且實(shí)現(xiàn)了 getColumnCount( , getRowCount(與getValueAt(3個(gè)方法。因此在實(shí)際的使用 上,DefaultTableModel比AbstractTableModel要來(lái)得簡(jiǎn)單許多,也較常被拿來(lái)使用 DefaultTableModel內(nèi)部使用Vector來(lái)使用表格的數(shù)據(jù),若佻所要顯示的表格格式是比較單純 的變化,筆者建議使
2、用DefaultTableModel類(lèi)會(huì)來(lái)得方便也簡(jiǎn)單許多。若佻所要顯示的數(shù)據(jù)模式非常復(fù)雜,例如我們所舉的成績(jī)表格外加學(xué)生選課信息等,像這類(lèi)的表格通常顯示的信息會(huì) 因人面異,因此使用AbstractTableModel會(huì)比較容易設(shè)計(jì)些。下面是DefaultTableModel的構(gòu)造函數(shù):DefaultTableModel(:建立一個(gè) DefaultTableModel,里面沒(méi)有任何數(shù)據(jù).DefaultTableModel(int numRows,int numColumns: 建立一個(gè)指定行列數(shù)的 DefaultTableModel.DefaultTableModel(Object口口 dat
3、a,Object columnNames: 建立一個(gè) DefaultTableModel ,輸 入數(shù)據(jù)格式為 Object Array.系統(tǒng)會(huì)自動(dòng)調(diào)用setDataVector(方法來(lái)設(shè)置數(shù)據(jù)。DefaultTableModel(Object口 columnNames,int numRows: 建立一個(gè) DefaultTableModel ,并具 有ColumnHeader名稱(chēng)與行數(shù)信息。DefaultTableModel(Vector columnNames,int numRows: 建立一個(gè) DefaultTableModel ,并具 有columnHeader名稱(chēng)與行數(shù)信息。Defaul
4、tTableModel(Vector data,Vector columnNames:建立一個(gè) DefaultTableModel ,輸入數(shù) 據(jù)格式為Vector.系統(tǒng)會(huì)自動(dòng)調(diào)用setDataVector(方法來(lái)設(shè)置數(shù)據(jù)。DefaultTableModel類(lèi)提供相當(dāng)多好用的方法,如之前我們談?wù)撨^(guò)的 getColumnCount(,getRowCount(,getValueAt(,isCellEditable(setValueAt(等方法,均可直接使用。且 DefaultTableModel也提供了 addColumn(與 addRow(等方法,可讓我們隨時(shí)增加表格的數(shù)據(jù)。下面我們就舉一個(gè)動(dòng)態(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;/*要?jiǎng)h除列必須使用TableColumnModel界面定義的removeColumn(T法。* 因此我閃先由JTable類(lèi)的getColumnModel(方法取* TableColumnModel 對(duì)象,再由 TableColumnModel 的 getColumn(* 方法取得要?jiǎng)h除列的TableColumn.此TableColumn對(duì)象當(dāng)作是* removeColumn(的參數(shù)。刪除此列完畢后必須重新設(shè)置列數(shù),* 也就是使用 DefaultTableModel
10、 的 setColumnCount(方法來(lái)設(shè)置。*/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)沒(méi)有任何歹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)沒(méi)有任何行了。if(rowcount >= 0defaultModel.removeRow(rowcount;defaultModel.setRowCount(rowc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工抵房購(gòu)房定金合同范本
- 2025年阿里貨運(yùn)從業(yè)資格證考題
- 2025年北海貨運(yùn)上崗證考試多少道題
- 2025年渭南貨運(yùn)資格證考試題答案
- 養(yǎng)殖場(chǎng)科研服務(wù)租賃合同
- 石油開(kāi)采水暖系統(tǒng)安裝協(xié)議
- 體育場(chǎng)館壓樁施工合同
- 倉(cāng)儲(chǔ)中心清潔保障協(xié)議
- 居民區(qū)域凈水機(jī)租賃合同協(xié)議書(shū)
- 風(fēng)電場(chǎng)壓樁施工合同
- 化工傳遞過(guò)程基礎(chǔ)全部
- WS 400-2023 血液運(yùn)輸標(biāo)準(zhǔn)
- 教師教姿教態(tài)課件
- 2023年蘇州外國(guó)語(yǔ)學(xué)校自主招生英語(yǔ)試卷
- 村干部法律培訓(xùn)課件
- 教育戲?。簩?shí)踐指南與課程計(jì)劃
- 2023-2024學(xué)年北京市豐臺(tái)區(qū)數(shù)學(xué)四上期末達(dá)標(biāo)測(cè)試試題含答案
- 纖維支氣管鏡檢查術(shù)護(hù)理
- 血液透析中監(jiān)護(hù)及護(hù)理課件
- 2023年標(biāo)簽管理規(guī)范模板
- 汽輪機(jī)本體及輔機(jī)檢修課件
評(píng)論
0/150
提交評(píng)論