Java數據庫編程中查詢結果的表格式輸出(1)

發表于:2007-07-14來源:作者:點擊數: 標簽:
Java 數據庫 編程中查詢結果的表格式輸出(1) 【內容摘要】本文較為詳細地介紹了在Java數據庫編程中,利用表格輸出查詢結果的方法;并對所涉及的類給以了簡要說明。 【關鍵字】類、對象、接口 【作者簡介】于波 男,26歲,陜西財經學院研究生,師從陳逢吉教
Java數據庫編程中查詢結果的表格式輸出(1)

【內容摘要】本文較為詳細地介紹了在Java數據庫編程中,利用表格輸出查詢結果的方法;并對所涉及的類給以了簡要說明。
【關鍵字】類、對象、接口
【作者簡介】于波 男,26歲,陜西財經學院研究生,師從陳逢吉教授,從事金融信息系統方面的研究。

利用Java開發數據庫應用系統時,經常需要在用戶界面上顯示查詢結果。由于SUN公司提供的JDK1.x開發工具包不是可視化的集成開發環境(IDE),不能象Delphi、VB那樣方便地把查詢結果在DBGrid等表格中顯示出來。因此,只能靠自己編寫代碼來實現。
在實際應用中,我們可以利用Vector、JTable、AbstractTableModel等三個類較好地解決這一問題。以下,詳細介紹一下實現方法。

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

1、 類Vector:
類Vector是Java的歷史集合類,隸屬于java.util包。它包裝了異構鏈表和數組雜合體,具有以下兩個特點:

* 向量是異構的,不要求每個元素的類型相同,向量中可以混合多種對象類型;
* 向量是數組雜合體,因為它們可以在增加元素時動態增大。

其異構性正好符合數據庫記錄中屬性類型不一的特點,而其動態性也正好符合數據庫查詢時,結果集記錄個數不定的特點。

類Vector定義如下:
public class Vector extends AbstractList
implements List , Cloneable , Serializable{…}

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

· 2、 類JTable:

JTable組件是Swing組件中比較復雜的小件,隸屬于javax.swing包,它能以二維表的形式顯示數據。類JTable定義如下:
public class JTable extends JComponent
implements TableModelListener, Scrollable, TableColumnModelListener,
ListSelectionListener, CellEditorListener, Aclearcase/" target="_blank" >ccessible{…}
類JTable在顯示數據時具有以下特點:

* 可定制性:可以定制數據的顯示方式和編輯狀態;
* 異構性:可以顯示不同類型的數據對象,甚至包括顏色、圖標等復雜對象;
* 簡便性:可以以缺省方式輕松地建立起一個二維表。

其可定制性可滿足不同用戶和場合的要求,異構性也正好符合數據庫訪問結果集中屬性類型不一的特點。類JTable提供了極為豐富的二維表格操作方法,如設置編

輯狀態、顯示方式、選擇行列等,在此不一一贅述。
使用類JTable顯示數據之前,必須根據情況生成定制模型、單元繪制器或單元編輯器。類AbstractListModel用來定制用戶自己的數據模型,這個類在后面要介紹。

TableCellRenderer接口用來定制單元繪制器,TableCellEditor接口用來定制單元編輯器,這兩個接口主要用于顏色對象的處理上,在示例中沒有用到,不做過多說明。

· 3、 類AbstractTableModel:

類AbstractTableModel是一個抽象類,沒有完全實現,不能實例化,使用時必須在程序中實現方法。它隸屬于javax.swing.table 。類定義如下:
public abstract class AbstractTableModel extends Object
implements TableModel, Serializable{…}

類AbstractTableModel提供了TableModel接口中絕大多數方法的缺省實現。TableModel接口定義了JTable 的基礎數據結構。用戶要生成自己的數據模型,本來可以

通過實現TableModel接口中所有方法來滿足要求,但管理聽眾表的功能對于所有數據模型是共同的,所以在javax.swing.table中又定義了類AbstractTableModel來

處理這個工作。它既管理聽眾表,又為生成TableModelEvents事件并委托給聽眾提供了便利。
要想生成一個具體的TableModel作為AbstractTableMode的子類,至少必須實現下面三個方法:

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

至此,我們可以建立一個簡單二維表(5×5),實現方法如下:
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);

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97