javatable的簡單介紹

本文目錄一覽:

JAVA如何實現jtable 表頭實現類似Excel篩選功能

用java的JTable實現類似Excel的報表控件主要需要完成的工作如下:

1. 單元格合併與拆分。

2. 基於JTextArea的渲染器,用來實現多行輸入。

3. 由於採用JTextArea作為渲染器,導致文本只能向左對齊,後來通過重載JTextArea得以實現居中,居右,字體下劃線等效果:)。

4. 鼠標動態拉行高,拉行寬。

5. 發現行數一多,導致性能下降很歷害,所以實現了只刷新當前可視屏幕區域。

6. 單元格屬性的設定:背景顏色、前景顏色、字體(大小,粗斜體,下劃線,刪除線)、對角線單元格(中國式報表)、邊框線等

7. 打印預覽

8. 打印

9. 自己實現的打印設置對話框(打印水印、打印方向、紙張頁邊距、打印紙張頁數範圍、打印順序、設定打印的頁眉和頁腳、放大打印或縮小打印)

10.往單元格加載圖片,可預覽和打印出來

11.套打模式,在table顯示標尺,並重置行高為1cm,行寬為2cm,以方便使用者對應套打紙張

12.為單元格繪製邊線

13.查找和替換

14.增加行和列,刪除行和列

15.格式刷

16.排序,升和降。可設定優先排序的形式,數值優先或着是中文優先,中文按照拼音排序

17.考貝,複製和貼粘

18.插入圖表,目前只實現了柱狀圖表

19.求和

20.各種熱鍵組合

21.顯示和隱藏table網格線

Java實現jtable 表頭實現類似Excel篩選功能,你可以採取以上步驟進行總結,希望你早日得到答案。

JAVA的table如何設置默認寬度啊

逐個Column設置,

TableColumn 有方法

void

setMaxWidth(int maxWidth)

將 TableColumn 的最大寬度設置為 maxWidth;如果 maxWidth 小於最小寬度,則設置為最小寬度。

void

setMinWidth(int minWidth)

將 TableColumn 的最小寬度設置為 minWidth,如有必要,調整新的最小寬度以確保 0 = minWidth = maxWidth。

void

setPreferredWidth(int preferredWidth)

將此列的首選寬度設置為 preferredWidth。

void

setWidth(int width)

不應使用此方法來設置 JTable 中列的寬度,而應使用 setPreferredWidth。

void

sizeWidthToFit()

調整 TableColumn 的大小,以適合其標題單元格的寬度。

如何在java添加table

String[] columnNames = {“第一列”, “第二列”}; //定義列字段信息

Object[][] cellData = {{“11”, “12”},{“21”, “22”}}; //定義表格數據字段

JTable table = new JTable(cellData, columnNames);

然後可以直接將這個table添加到指定的容器上,例如有一個JFrame對象f,可以通過f.add(table)的方式來添加。

java編程的table類如何實現保存操作

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, Accessible{…}

類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);

· 二、 數據庫及其連接方法簡介:

示例採用Sybase數據庫系統,數據庫存放在數據庫服務器中。路徑為:D:/WORKER,數據庫名為:worker.dbf。具有以下字段:

字段名

類型

Wno(職工號)

VARCHAR

Wname(職工名)

VARCHAR

Sex(性別)

VARCHAR

Birthday(出生日期)

DATE

Wage(工資)

FLOAT

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

第一步:定位、裝入和鏈接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接口進行數據庫的查詢與更改。

· 三、 實現方法:

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

第一步:對象聲明。

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

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

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

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

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

//二維表列名

第二步:定製表格。

1、實現抽象類AbstractTableModel對象tm中的方法:

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

tm=new AbstractTableModel(){

public int getColumnCount(){

return title.length;}//取得表格列數

public int getRowCount(){

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

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];}//設置表格列名

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

//數據模型不可編輯,該方法設置為空

public Class getColumnClass(int c){

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

}//取得列所屬對象類

public boolean isCellEditable(int row,int column){

return false;}//設置單元格不可編輯,為缺省實現

};

2、定製表格:

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

jg_table.setToolTipText(“顯示全部查詢結果”);//設置幫助提示

jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

//設置表格調整尺寸模式

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

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

jg_table.setShowHorizontalLines(true);

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

第三步:顯示查詢結果。

1、 連接數據庫:第二部分已給出。

2、 數據庫查詢:

Statement stmt=connection.createStatement();

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

3、 顯示查詢結果:

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

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

while(rs.next()){

Vector rec_vector=new Vector();

//從結果集中取數據放入向量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的內容。

java 獲取table 的內容

寫一個類,繼承DefaultTableCellRenderer,

重寫它的

Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)

方法,,先獲得這一行(row)的那一個int數據,如果大於100,就setBackground(Color.RED),小於100,setBackground(Color.BLUE);

table.setDefaultRenderer(table.getColumnClass(0), new MyTableRender());

就好

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/159604.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-20 00:14
下一篇 2024-11-20 00:14

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進制下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27

發表回復

登錄後才能評論