DefaultTableModel的內(nèi)部構(gòu)造匯總_第1頁(yè)
DefaultTableModel的內(nèi)部構(gòu)造匯總_第2頁(yè)
DefaultTableModel的內(nèi)部構(gòu)造匯總_第3頁(yè)
DefaultTableModel的內(nèi)部構(gòu)造匯總_第4頁(yè)
DefaultTableModel的內(nèi)部構(gòu)造匯總_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論