資源描述:
《理解JTable的用法收藏》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、理解JTable的用法收藏在使用JTable以前,我們先看一下它的構(gòu)造函數(shù)有哪些,以及應(yīng)該如何使用:JTabel構(gòu)造函數(shù):JTable():建立一個新的JTables,并使用系統(tǒng)默認(rèn)的Model.JTable(intnumRows,intnumColumns):建立一個具有numRows行,numColumns列的空表格,使用的是DefaultTableModel.JTable(Object[][]rowData,Object[][]columnNames):建立一個顯示二維數(shù)組數(shù)據(jù)的表格,且可以顯示列的名
2、稱。JTable(TableModeldm):建立一個JTable,有默認(rèn)的字段模式以及選擇模式,并設(shè)置數(shù)據(jù)模式。JTable(TableModeldm,TableColumnModelcm):建立一個JTable,設(shè)置數(shù)據(jù)模式與字段模式,并有默認(rèn)的選擇模式。JTable(TableModeldm,TableColumnModelcm,ListSelectionModelsm):建立一個JTable,設(shè)置數(shù)據(jù)模式、字段模式、與選擇模式。JTable(VectorrowData,VectorcolumnNam
3、es):建立一個以Vector為輸入來源的數(shù)據(jù)表格,可顯示行的名稱。我們先以Array構(gòu)造方式,說明如何利用JTable來建立一個簡單的表格:1importjavax.swing.*;2importjava.awt.*;3importjava.awt.event.*;4importjava.util.*;5publicclassSimpleTable{6publicSimpleTable(){7JFramef=newJFrame();8Object[][]playerInfo={9?????{"阿呆",ne
4、wInteger(66),newInteger(32),newInteger(98),newBoolean(false)},10{"阿呆",newInteger(82),newInteger(69),newInteger(128),newBoolean(true)},11};12String[]Names={"姓名","語文","數(shù)學(xué)","總分","及格"};13JTabletable=newJTable(playerInfo,Names);14table.setPreferredScrollableVie
5、wportSize(newDimension(550,30));15JScrollPanescrollPane=newJScrollPane(table);16f.getContentPane().add(scrollPane,BorderLayout.CENTER);17f.setTitle("SimpleTable");18f.pack();19f.show();20f.addWindowListener(newWindowAdapter(){21publicvoidwindowClosing(Wind
6、owEvente){22System.exit(0);23}24});24}25publicstaticvoidmain(String[]args){26?????SimpleTableb=newSimpleTable();27}28}表格由兩部份組成:分別是行標(biāo)題(ColumnHeader)與行對象(ColumnObject).利用JTable所提供的getTableHeader()方法取得行標(biāo)題。在這個例子中,我們將JTable放在JScrollPane中,這種做法可以將ColumnHeader與Col
7、mnObject完整的顯示出來,因?yàn)镴ScrollPane會自動取得ColumnHeader.但如果文壇讀者將上面第15行去掉并修改第16行:f.getContentPane().add(table,BorderLayout.CENTER);則運(yùn)行結(jié)果你會發(fā)現(xiàn)ColumnHeader不見了。如果你不想用JScrollPane,要解決這個問題,你必須將程序修改如下:JTabletable=newJTable(p,n);table.setPreferredScrollableViewportSize(newDi
8、mension(550,30));f.getContentPane().add(table.getTableHeader(),BorderLayout.NORTH);f.getContentPane().add(table,BorderLayout.CENTER);運(yùn)行結(jié)果就會跟之前一樣有行標(biāo)題了.上面的運(yùn)行結(jié)果就會跟發(fā)現(xiàn),每個字段的寬度都是一樣的,除非你自行拉曳某個列寬。若我們想一開始就設(shè)置列寬的值,可以利用T