日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java显示链表在jtable上输出_jtable的使用精华

發(fā)布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java显示链表在jtable上输出_jtable的使用精华 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

jtable的使用精華

眾所皆知,java中沒有像c#中的DATAGRID似的數(shù)據(jù)顯示控件,所以不能直接顯示數(shù)據(jù),只有通過自己定制表格才能顯示數(shù)據(jù),請個位來討論一下java中用來顯示數(shù)據(jù)jtable的使用技巧和,請看拉的一定要回啊,不回不過意思哦!!

搜索更多相關(guān)的解決方案:

jtable??精華

----------------解決方案--------------------------------------------------------

我還沒有用過JBable.都是JTextArea,輸出的時候兩數(shù)據(jù)項(xiàng)間加空格,呵呵,你是怎么用的啊?比如從一個數(shù)據(jù)庫里讀許多東西出來的時候,怎么用?

----------------解決方案--------------------------------------------------------

我在網(wǎng)上找了點(diǎn)資料……較通俗易懂,你可以參考一下

一、 類Vector、類JTable及類AbstractTableModel簡介:

1、 類Vector:

類Vector是Java的歷史集合類,隸屬于java.util包。它包裝了異構(gòu)鏈表和數(shù)組雜合體,具有以下兩個特點(diǎn):

* 向量是異構(gòu)的,不要求每個元素的類型相同,向量中可以混合多種對象類型;

* 向量是數(shù)組雜合體,因?yàn)樗鼈兛梢栽谠黾釉貢r動態(tài)增大。

其異構(gòu)性正好符合數(shù)據(jù)庫記錄中屬性類型不一的特點(diǎn),而其動態(tài)性也正好符合數(shù)據(jù)庫查詢時,結(jié)果集記錄個數(shù)不定的特點(diǎn)。

類Vector定義如下:

public class Vector extends AbstractList

implements List , Cloneable , Serializable{…}

實(shí)現(xiàn)了向量成員的查找、新增、刪除等方法。如:add(Object obj)可方便地加入一個對象;get(int index)可方便地得到向量中的一個對象;remove(Object obj)則可方便地刪除向量中一個對象。

2、 類JTable:

JTable組件是Swing組件中比較復(fù)雜的小件,隸屬于javax.swing包,它能以二維表的形式顯示數(shù)據(jù)。類JTable定義如下:

public class JTable extends JComponent

implements TableModelListener, Scrollable, TableColumnModelListener,

ListSelectionListener, CellEditorListener, Accessible{…}

類JTable在顯示數(shù)據(jù)時具有以下特點(diǎn):

* 可定制性:可以定制數(shù)據(jù)的顯示方式和編輯狀態(tài);

* 異構(gòu)性:可以顯示不同類型的數(shù)據(jù)對象,甚至包括顏色、圖標(biāo)等復(fù)雜對象;

* 簡便性:可以以缺省方式輕松地建立起一個二維表。

其可定制性可滿足不同用戶和場合的要求,異構(gòu)性也正好符合數(shù)據(jù)庫訪問結(jié)果集中屬性類型不一的特點(diǎn)。類JTable提供了極為豐富的二維表格操作方法,如設(shè)置編輯狀態(tài)、顯示方式、選擇行列等,在此不一一贅述。

使用類JTable顯示數(shù)據(jù)之前,必須根據(jù)情況生成定制模型、單元繪制器或單元編輯器。類AbstractListModel用來定制用戶自己的數(shù)據(jù)模型,這個類在后面要介紹。TableCellRenderer接口用來定制單元繪制器,TableCellEditor接口用來定制單元編輯器,這兩個接口主要用于顏色對象的處理上,在示例中沒有用到,不做過多說明。

3、 類AbstractTableModel:

類AbstractTableModel是一個抽象類,沒有完全實(shí)現(xiàn),不能實(shí)例化,使用時必須在程序中實(shí)現(xiàn)方法。它隸屬于javax.swing.table 。類定義如下:

public abstract class AbstractTableModel extends Object

implements TableModel, Serializable{…}

類AbstractTableModel提供了TableModel接口中絕大多數(shù)方法的缺省實(shí)現(xiàn)。TableModel接口定義了JTable 的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。用戶要生成自己的數(shù)據(jù)模型,本來可以通過實(shí)現(xiàn)TableModel接口中所有方法來滿足要求,但管理聽眾表的功能對于所有數(shù)據(jù)模型是共同的,所以在javax.swing.table中又定義了類AbstractTableModel來處理這個工作。它既管理聽眾表,又為生成TableModelEvents事件并委托給聽眾提供了便利。

要想生成一個具體的TableModel作為AbstractTableMode的子類,至少必須實(shí)現(xiàn)下面三個方法:

public int getRowCount();

public int getColumnCount();

public Object getValueAt(int row, int column);

至此,我們可以建立一個簡單二維表(5×5),實(shí)現(xiàn)方法如下:

TableModel dataModel = new AbstractTableModel() {

public int getColumnCount() { return 5; }

public int getRowCount() { return 5;}

public Object getValueAt(int row, int col) { return new Integer(row*col); }

};

JTable table = new JTable(dataModel);

JScrollPane scrollpane = new JScrollPane(table);

二、 數(shù)據(jù)庫及其連接方法簡介:

示例采用Sybase數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫存放在數(shù)據(jù)庫服務(wù)器中。路徑為:D:\WORKER,數(shù)據(jù)庫名為:worker.dbf。具有以下字段:

字段名

類型

Wno(職工號)

VARCHAR

Wname(職工名)

VARCHAR

Sex(性別)

VARCHAR

Birthday(出生日期)

DATE

Wage(工資)

FLOAT

要連接此數(shù)據(jù)庫,需使用java.sql包中的類DriverManager。此類是用于管理JDBC驅(qū)動程序的實(shí)用程序類。它提供了通過驅(qū)動程序取得連接、注冊,撤消驅(qū)動程序,設(shè)置登記和數(shù)據(jù)庫訪問登錄超時等方法。具體連接方法如下:

第一步:定位、裝入和鏈接SybDriver類;

driver="com.sybase.jdbc.SybDriver";

SybDriver sybdriver=(SybDriver)Class.forName(driver).newInstance();

第二步:注冊SybDriver類;

DriverManager.registerDriver(sybdriver);

第三步:取得連接(SybConnection)對象引用。

user="sa";

password="";

url="jdbc:sybase:Tds:202.117.203.114:5000/WORKER";

SybConnection connection=(SybConnection)DriverManager.getConnection

(url,user,password);

建立完連接后,即可通過Statement接口進(jìn)行數(shù)據(jù)庫的查詢與更改。

三、 實(shí)現(xiàn)方法:

限于篇幅,在此只給出核心代碼,包引入、界面處理、變量定義等部分不再介紹。

第一步:對象聲明。

AbstractTableModel tm;//聲明一個類AbstractTableModel對象

JTable jg_table;//聲明一個類JTable對象

Vector vect;//聲明一個向量對象

JScrollPane jsp;//聲明一個滾動杠對象

String title[]={"職工號","職工名","性別","出生日期","工資"};

//二維表列名

第二步:定制表格。

1、實(shí)現(xiàn)抽象類AbstractTableModel對象tm中的方法:

vect=new Vector();//實(shí)例化向量

tm=new AbstractTableModel(){

public int getColumnCount(){

return title.length;}//取得表格列數(shù)

public int getRowCount(){

return vect.size();}//取得表格行數(shù)

public Object getValueAt(int row,int column){

if(!vect.isEmpty())

return

((Vector)vect.elementAt(row)).elementAt(column);

else

return null;}//取得單元格中的屬性值

public String getColumnName(int column){

return title[column];}//設(shè)置表格列名

public void setValueAt(Object value,int row,int column){}

//數(shù)據(jù)模型不可編輯,該方法設(shè)置為空

public Class getColumnClass(int c){

return getValueAt(0,c).getClass();

}//取得列所屬對象類

public boolean isCellEditable(int row,int column){

return false;}//設(shè)置單元格不可編輯,為缺省實(shí)現(xiàn)

};

2、定制表格:

jg_table=new JTable(tm);//生成自己的數(shù)據(jù)模型

jg_table.setToolTipText("顯示全部查詢結(jié)果");//設(shè)置幫助提示

jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

//設(shè)置表格調(diào)整尺寸模式

jg_table.setCellSelectionEnabled(false);//設(shè)置單元格選擇方式

jg_table.setShowVerticalLines(true);//設(shè)置是否顯示單元格間的分割線

jg_table.setShowHorizontalLines(true);

jsp=new JScrollPane(jg_table);//給表格加上滾動杠

第三步:顯示查詢結(jié)果。

1、 連接數(shù)據(jù)庫:第二部分已給出。

2、 數(shù)據(jù)庫查詢:

Statement stmt=connection.createStatement();

ResultSet rs=stmt.executeQuery("select * from worker");

3、 顯示查詢結(jié)果:

vect.removeAllElements();//初始化向量對象

tm.fireTableStructureChanged();//更新表格內(nèi)容

while(rs.next()){

Vector rec_vector=new Vector();

//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中

rec_vector.addElement(rs.getString(1));

rec_vector.addElement(rs.getString(2));

rec_vector.addElement(rs.getString(3));

rec_vector.addElement(rs.getDate(4));

rec_vector.addElement(new Float(rs.getFloat(5)));

vect.addElement(rec_vector);//向量rec_vector加入向量vect中

}

tm.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容

----------------解決方案--------------------------------------------------------

好啊 我又學(xué)到了不少,謝謝斑竹老大拉~

----------------解決方案--------------------------------------------------------

總結(jié)

以上是生活随笔為你收集整理的java显示链表在jtable上输出_jtable的使用精华的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。