Java程序設(shè)計(jì)課件:單元24 JDBC應(yīng)用實(shí)例_第1頁
Java程序設(shè)計(jì)課件:單元24 JDBC應(yīng)用實(shí)例_第2頁
Java程序設(shè)計(jì)課件:單元24 JDBC應(yīng)用實(shí)例_第3頁
Java程序設(shè)計(jì)課件:單元24 JDBC應(yīng)用實(shí)例_第4頁
Java程序設(shè)計(jì)課件:單元24 JDBC應(yīng)用實(shí)例_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單元員24 JDBC應(yīng)用實(shí)例SQL小工具開發(fā)單元目標(biāo)u 鞏固如何使用JDBC獲取數(shù)據(jù)庫連接;u 掌握如何使用JDBC獲取數(shù)據(jù)庫元數(shù)據(jù)u 鞏固運(yùn)用JDBC對數(shù)據(jù)進(jìn)行增、刪、改、查。學(xué)習(xí)任務(wù)1.任務(wù)描述開發(fā)SQL小工具,允許用戶輸入數(shù)據(jù)源、用戶名、口令,連接數(shù)據(jù)庫。輸入并執(zhí)行增、刪、查、改SQL語句。2.運(yùn)行結(jié)果初始運(yùn)行界面如下:點(diǎn)擊連接按鈕后,再點(diǎn)擊SQL查詢按鈕:查詢結(jié)果顯示:輸入執(zhí)行修改語句: SQL小工具開發(fā)知識準(zhǔn)備5.18 ResultSetMetaDataDatabaseMetaData 有關(guān)整個(gè)數(shù)據(jù)庫的信息:表名、表的索引、數(shù)據(jù)庫產(chǎn)品的名稱和版本、數(shù)據(jù)庫支持的操作。ResultSet

2、 關(guān)于某個(gè)表的信息或一個(gè)查詢的結(jié)果。您必須逐行訪問數(shù)據(jù)行,但是您可以任何順序訪問列。 ResultSetMetaData 有關(guān) ResultSet 中列的名稱和類型的信息。 例如:ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2"); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount();String colName = rsmd. getColumnName(1);ResultSet

3、MetaData 的主要方法包括: StringgetCatalogName(int column)  獲取指定列的表目錄名稱。 StringgetColumnClassName(int column) 如果調(diào)用方法 ResultSet.getObject 從列中獲取值,則返回構(gòu)造其實(shí)例的 Java 類的完全限定名稱。 intgetColumnCount() 返回此 ResultSet 對象中的列數(shù)。 intgetColumnDisplaySize(int column) 指

4、示指定列的最大標(biāo)準(zhǔn)寬度,以字符為單位。 StringgetColumnLabel(int column)  獲取用于打印輸出和顯示的指定列的建議標(biāo)題。 StringgetColumnName(int column)  獲取指定列的名稱。 intgetColumnType(int column)   獲取指定列的 SQL 類型。 StringgetColumnTypeName(int column)  獲取指定列的數(shù)據(jù)庫特定的類

5、型名稱。 intgetPrecision(int column) 獲取指定列的指定列寬。 intgetScale(int column) 獲取指定列的小數(shù)點(diǎn)右邊的位數(shù)。 StringgetSchemaName(int column)  獲取指定列的表模式。 StringgetTableName(int column)  獲取指定列的名稱。 booleanisAutoIncrement(int column) 指示是否自動為指定列進(jìn)行編號

6、。 booleanisCaseSensitive(int column)   指示列的大小寫是否有關(guān)系。 booleanisCurrency(int column) 指示指定的列是否是一個(gè)哈希代碼值。 booleanisDefinitelyWritable(int column) 指示在指定的列上進(jìn)行寫操作是否明確可以獲得成功。 intisNullable(int column)  指示指定列中的值是否可以為 null。 boolean

7、isReadOnly(int column)  指示指定的列是否明確不可寫入。 booleanisSearchable(int column)  指示是否可以在 where 子句中使用指定的列。 booleanisSigned(int column) 指示指定列中的值是否帶正負(fù)號。 booleanisWritable(int column) 指示在指定的列上進(jìn)行寫操作是否可以獲得成功。5.19 JTableJTable 用來顯示和編輯常規(guī)二維單元表。JTable 有

8、很多用來自定義其呈現(xiàn)和編輯的工具,同時(shí)提供了這些功能的默認(rèn)設(shè)置,從而可以輕松地設(shè)置簡單表。例如,要設(shè)置一個(gè) 10 行 10 列的表: TableModel dataModel = new AbstractTableModel() public int getColumnCount() return 10; public int getRowCount() return 10; public Object getValueAt(int row, int col) return new Integer(row*col); ; JTable table = new JTable(dataModel)

9、; JScrollPane scrollpane = new JScrollPane(table); 注意,如果要在單獨(dú)的視圖中(在 JScrollPane 外)使用 JTable 并顯示表標(biāo)題,則可以使用 getTableHeader() 獲取并單獨(dú)顯示它。 要啟用行的排序和過濾,請使用 RowSorter。可以通過以下兩種方式之一設(shè)置一個(gè)行排序器。 直接設(shè)置RowSorter。例如:table.setRowSorter(new TableRowSorter(model)。 將 autoCreateRowSorter 屬性設(shè)置為 true,從而 JTable 可用于創(chuàng)建 RowSorter。

10、例如:setAutoCreateRowSorter(true)。 設(shè)計(jì)使用 JTable 的應(yīng)用程序時(shí),務(wù)必要注意用來表示表數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。DefaultTableModel 是一個(gè)模型實(shí)現(xiàn),它使用一個(gè) Vector 來存儲所有單元格的值,該 Vector 由包含多個(gè) Object 的 Vector 組成。除了將數(shù)據(jù)從應(yīng)用程序復(fù)制到 DefaultTableModel 中之外,還可以用 TableModel 接口的方法來包裝數(shù)據(jù),這樣可將數(shù)據(jù)直接傳遞到 JTable,如上例所示。這通??梢蕴岣邞?yīng)用程序的效率,因?yàn)槟P涂梢宰杂蛇x擇最適合數(shù)據(jù)的內(nèi)部表示形式。在決定使用 AbstractTableM

11、odel 還是使用 DefaultTableModel 方面有一個(gè)好的實(shí)踐經(jīng)驗(yàn),即在創(chuàng)建子類時(shí)使用 AbstractTableModel 作為基類,在不需要創(chuàng)建子類時(shí)則使用 DefaultTableModel。 源分布演示部分中的 "TableExample" 目錄給出了許多 JTable 用法的完整示例,包括如何使用 JTable 來提供一個(gè)可編輯的數(shù)據(jù)視圖(數(shù)據(jù)取自數(shù)據(jù)庫),以及如何修改顯示的列以使用指定的渲染器和編輯器。 JTable 使用專有的整數(shù)來引用它所顯示的模型的行和列。JTable 采用表格的單元格范圍,并在繪制時(shí)使用 getValueAt(int, int

12、) 從模型中獲取值。務(wù)必記住各種 JTable 方法所返回的列和行索引是就 JTable(視圖)而言的,不一定是模型所使用的那些索引。 默認(rèn)情況下,在 JTable 中對列進(jìn)行重新安排,這樣在視圖中列的出現(xiàn)順序與模型中列的順序不同。但這根本不影響模型的實(shí)現(xiàn):當(dāng)列重新排列時(shí),JTable 在內(nèi)部保持列的新順序,并在查詢模型前轉(zhuǎn)換其列索引。 因此編寫 TableModel 時(shí),不必偵聽列的重排事件,因?yàn)椴还芤晥D怎樣,模型都將在其自己的坐標(biāo)系統(tǒng)被查詢。在示例部分中有一個(gè)排序算法的演示,此演示正是使用了此技術(shù)在另一個(gè)坐標(biāo)系統(tǒng)中進(jìn)行排序,其中更改了行順序,沒有更改列順序。 類似地,使用 RowSorte

13、r 提供的排序和過濾功能時(shí),底層 TableModel 不需要知道怎樣進(jìn)行排序,RowSorter 將處理它。對底層 TableModel 使用 JTable 的基于行的方法時(shí),必須進(jìn)行坐標(biāo)轉(zhuǎn)換。所有基于 JTable 行的方法都是就 RowSorter 而言的,不一定與底層 TableModel 的方法相同。例如,選擇始終是就 JTable 而言的,因此使用 RowSorter 時(shí),需要使用 convertRowIndexToView 或 convertRowIndexToModel 進(jìn)行轉(zhuǎn)換。以下代碼顯示了如何將 JTable 的坐標(biāo)轉(zhuǎn)換為底層模型的坐標(biāo): int selection =

14、table.getSelectedRows(); for (int i = 0; i < selection.length; i+) selectioni = table.convertRowIndexToModel(selectioni); / selection is now in terms of the underlying TableModel 默認(rèn)情況下,如果啟用排序,那么排序時(shí) JTable 將保留基于模型的選擇和可變行高度。例如,如果當(dāng)前選擇行 0(就底層模型而言),那么排序之后將選擇行 0(就底層模型而言)。選擇有可能看起來被更改了,但就底層模型而言它仍然保持不變。模型

15、索引不再可見或者被移除時(shí)除外。例如,如果行 0 被過濾掉了,那么選擇在排序后將為空。 J2SE 5 在 JTable 中添加了一些方法,為某些普通打印需求提供方便的訪問。print() 是一個(gè)簡單的新方法,它允許快速簡單地向應(yīng)用程序添加打印支持。此外,新的 getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat) 方法可用于更高級的打印需求。下面是JTable的主要方法:構(gòu)造方法摘要JTable()  構(gòu)造一個(gè)默認(rèn)的 JTable,使用默認(rèn)的數(shù)據(jù)模型、默認(rèn)的

16、列模型和默認(rèn)的選擇模型對其進(jìn)行初始化。JTable(int numRows, int numColumns) 使用 DefaultTableModel 構(gòu)造具有 numRows 行和 numColumns 列個(gè)空單元格的 JTable。JTable(Object rowData, Object columnNames) 構(gòu)造一個(gè) JTable 來顯示二維數(shù)組 rowData 中的值,其列名稱為 columnNames。JTable(TableModel dm) 構(gòu)造一個(gè) JTable,使用數(shù)據(jù)模型 dm、默認(rèn)的列模型和默認(rèn)的選擇模型對其進(jìn)行初始

17、化。JTable(TableModel dm, TableColumnModel cm) 構(gòu)造一個(gè) JTable,使用數(shù)據(jù)模型 dm、列模型 cm 和默認(rèn)的選擇模型對其進(jìn)行初始化。JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)   構(gòu)造一個(gè) JTable,使用數(shù)據(jù)模型 dm、列模型 cm 和選擇模型 sm 對其進(jìn)行初始化。JTable(Vector rowData, Vector columnNames) 

18、60;構(gòu)造一個(gè) JTable 來顯示 Vector 所組成的 Vector rowData 中的值,其列名稱為 columnNames。方法摘要 voidaddColumn(TableColumn aColumn)  將 aColumn 追加到此 JTable 的列模型所保持的列數(shù)組的尾部。 voidaddColumnSelectionInterval(int index0, int index1) 將從 index0 到 index1 之間(包含兩端)的列添加到當(dāng)前選擇中。 voidaddNotify()

19、0;調(diào)用 configureEnclosingScrollPane 方法。 voidaddRowSelectionInterval(int index0, int index1)   將從 index0 到 index1 之間(包含兩端)的行添加到當(dāng)前選擇中。 voidchangeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)  根據(jù) toggle 和 extend 這兩個(gè)標(biāo)志的狀態(tài),更新

20、表的選擇模型。 voidclearSelection() 取消選中所有已選定的行和列。 voidcolumnAdded(TableColumnModelEvent e) 將列添加到表的列模型時(shí)調(diào)用。 intcolumnAtPoint(Point point)   返回 point 所在的列索引;如果結(jié)果不在 0, getColumnCount()-1 范圍內(nèi),則返回 -1。 voidcolumnMarginChanged(ChangeEvent e) 當(dāng)列由于間距的

21、更改而被移動時(shí)調(diào)用。 voidcolumnMoved(TableColumnModelEvent e) 重新定位列時(shí)調(diào)用。 voidcolumnRemoved(TableColumnModelEvent e) 從表的列模型中移除列時(shí)調(diào)用。 voidcolumnSelectionChanged(ListSelectionEvent e) TableColumnModel 的選擇模型更改時(shí)調(diào)用。protected  voidconfigureEnclosingScrollPane() &#

22、160;  如果此 JTable 是一個(gè)封閉 JScrollPane 的 viewportView(通常情況如此),那么可通過安裝表的 tableHeader 作為滾動窗格的 columnHeaderView 來配置此 ScrollPane。 intconvertColumnIndexToModel(int viewColumnIndex) 將視圖中位于 viewColumnIndex 的列索引映射到表模型中的列索引。 intconvertColumnIndexToView(int modelColumnIndex)

23、0;將表模型中位于 modelColumnIndex 的列索引映射到視圖中的列索引。 intconvertRowIndexToModel(int viewRowIndex)  將基于視圖的行索引映射到底層 TableModel。 intconvertRowIndexToView(int modelRowIndex)將基于 TableModel 的行索引映射到該視圖。protected  TableColumnModelcreateDefaultColumnModel() 返回默認(rèn)的列模型對象,它是一個(gè) Defaul

24、tTableColumnModel。 voidcreateDefaultColumnsFromModel() 使用 TableModel 接口中定義的 getColumnCount 方法根據(jù)數(shù)據(jù)模型創(chuàng)建默認(rèn)的表列。protected  TableModelcreateDefaultDataModel()  返回默認(rèn)的表模型對象,它是一個(gè) DefaultTableModel。protected  voidcreateDefaultEditors() 為 object、number 和 boolean 值創(chuàng)建默認(rèn)的單元格編輯器。

25、protected  voidcreateDefaultRenderers() 為 object、number、double、date、boolean 和 icon 創(chuàng)建默認(rèn)的單元格渲染器。protected  ListSelectionModelcreateDefaultSelectionModel() 返回默認(rèn)的選擇模型對象,它是一個(gè) DefaultListSelectionModel。protected  JTableHeadercreateDefaultTableHeader() 返回默認(rèn)的表標(biāo)題對象,它是一個(gè) JTableH

26、eader。 voiddoLayout()  使此表布局其行和列。 booleaneditCellAt(int row, int column) 如果 row 和 column 位置的索引在有效范圍內(nèi),并且這些索引處的單元格是可編輯的,則以編程方式啟動該位置單元格的編輯。 booleaneditCellAt(int row, int column, EventObject e)如果 row 和 column 位置的索引在有效范圍內(nèi),并且這些索引處的單元格是可編輯的,則以編程方式啟動該位

27、置單元格的編輯。 voideditingCanceled(ChangeEvent e)    編輯取消時(shí)調(diào)用。 voideditingStopped(ChangeEvent e) 編輯結(jié)束時(shí)調(diào)用。 AccessibleContextgetAccessibleContext()  獲取與此 JTable 關(guān)聯(lián)的 AccessibleContext。 booleangetAutoCreateColumnsFromModel() 確定表是否要根據(jù)模型創(chuàng)建默認(rèn)的列

28、。 booleangetAutoCreateRowSorter() 如果每當(dāng)模型更改時(shí),都應(yīng)該創(chuàng)建一個(gè)新 RowSorter 并作為該表的排序器安裝,則返回 true;否則,返回 false。 intgetAutoResizeMode()返回表的自動調(diào)整模式。 TableCellEditorgetCellEditor() 返回活動單元格編輯器;如果該表當(dāng)前沒有被編輯,則返回 null。 TableCellEditorgetCellEditor(int row, int column)返回適用于由 row 和 col

29、umn 所指定單元格的編輯器。 RectanglegetCellRect(int row, int column, boolean includeSpacing)   返回位于 row 和 column 相交位置的單元格矩形。 TableCellRenderergetCellRenderer(int row, int column)   返回適于由此行和列所指定單元格的渲染器。 booleangetCellSelectionEnabled()   如果同時(shí)

30、啟用了行選擇模型和列選擇模型,則返回 true。 TableColumngetColumn(Object identifier)   返回表中列的 TableColumn 對象,當(dāng)使用 equals 進(jìn)行比較時(shí),表的標(biāo)識符等于 identifier。 Class<?>getColumnClass(int column)   返回出現(xiàn)在視圖中 column 列位置處的列類型。 intgetColumnCount() 返回列模型中的列數(shù)。 TableColumnModelget

31、ColumnModel() 返回包含此表所有列信息的 TableColumnModel。 StringgetColumnName(int column)           返回出現(xiàn)在視圖中 column 列位置處的列名稱。 booleangetColumnSelectionAllowed()           如果可以選擇列,則返回 true。 

32、;TableCellEditorgetDefaultEditor(Class<?> columnClass) 尚未在 TableColumn 中設(shè)置編輯器時(shí),返回要使用的編輯器。 TableCellRenderergetDefaultRenderer(Class<?> columnClass) 尚未在 TableColumn 中設(shè)置渲染器時(shí),返回要使用的單元格渲染器。 booleangetDragEnabled() 返回是否啟用自動拖動處理。 JTable.DropLocationgetDr

33、opLocation()返回對組件的 DnD 操作期間此組件應(yīng)該可見地指示為放置位置的位置;如果當(dāng)前沒有顯示任何位置,則返回 null。 DropModegetDropMode()  返回此組件的放置模式。 intgetEditingColumn()返回包含當(dāng)前被編輯的單元格的列索引。 intgetEditingRow() 返回包含當(dāng)前被編輯的單元格的行索引。 ComponentgetEditorComponent() 返回處理編輯會話的組件。 booleangetFillsViewportHeight(

34、) 返回此表是否始終大到足以填充封閉視口的高度。 ColorgetGridColor()  返回用來繪制網(wǎng)格線的顏色。 DimensiongetIntercellSpacing()  返回單元格之間的水平間距和垂直間距。 TableModelgetModel()  返回提供此 JTable 所顯示數(shù)據(jù)的 TableModel。 DimensiongetPreferredScrollableViewportSize()      

35、0;    返回此表視口的首選大小。 PrintablegetPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)           返回打印此 JTable 中所使用的 Printable。 intgetRowCount()  返回 JTable 中可

36、以顯示的行數(shù)(給定無限空間)。 intgetRowHeight() 返回表的行高,以像素為單位。 intgetRowHeight(int row) 返回 row 中單元格的高度,以像素為單位。 intgetRowMargin() 獲取單元格之間的間距,以像素為單位。 booleangetRowSelectionAllowed()如果可以選擇行,則返回 true。 RowSorter<? extends TableModel>getRowSorter() 返回負(fù)責(zé)排序的對象。 

37、;intgetScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)  返回 visibleRect.height 或 visibleRect.width,這取決于此表的方向。 booleangetScrollableTracksViewportHeight()   返回 false 指示表的高度不是由視口的高度決定的,除非 getFillsViewportHeight 為 true 并且該表的首選高度

38、小于視口的高度。 booleangetScrollableTracksViewportWidth()   如果 autoResizeMode 設(shè)置為 AUTO_RESIZE_OFF,則返回 false,這指示表的寬度不是由視口的寬度決定的。 intgetScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)  返回完全呈現(xiàn)出一個(gè)新行或新列(取決于方向)的滾動增量(以像素為單位)。 in

39、tgetSelectedColumn()返回第一個(gè)選定列的索引;如果沒有選定的列,則返回 -1。 intgetSelectedColumnCount()返回選定列數(shù)。 intgetSelectedColumns() 返回所有選定列的索引。 intgetSelectedRow() 返回第一個(gè)選定行的索引;如果沒有選定的行,則返回 -1。 intgetSelectedRowCount()  返回選定行數(shù)。 intgetSelectedRows() 返回所有選定行的索引。 ColorgetS

40、electionBackground()   返回選定單元格的背景色。 ColorgetSelectionForeground()  返回選定單元格的前景色。 ListSelectionModelgetSelectionModel()返回用來維持行選擇狀態(tài)的 ListSelectionModel。 booleangetShowHorizontalLines() 如果表繪制單元格之間的水平線,則返回 true,否則返回 false。 booleangetShowVerticalLines()

41、60;如果表繪制單元格之間的垂直線,則返回 true,否則返回 false。 booleangetSurrendersFocusOnKeystroke()如果在鍵擊導(dǎo)致編輯器被激活時(shí)編輯器應(yīng)該獲得焦點(diǎn),則返回 true JTableHeadergetTableHeader() 返回此 JTable 所使用的 tableHeader。 StringgetToolTipText(MouseEvent event) 重寫 JComponent 的 getToolTipText 方法,從而允許使用渲染器的提示(如果設(shè)置了文本)。 T

42、ableUIgetUI()   返回呈現(xiàn)此組件的 L&F 對象。 StringgetUIClassID() 返回用于構(gòu)造呈現(xiàn)此組件時(shí)所用 L&F 類名稱的后綴。 booleangetUpdateSelectionOnSort()  如果排序后應(yīng)該更新選擇,則返回 true。 ObjectgetValueAt(int row, int column) 返回 row 和 column 位置的單元格值。protected  voidinitializeLo

43、calVars() 將表的屬性初始化為其默認(rèn)值。 booleanisCellEditable(int row, int column) 如果 row 和 column 位置的單元格是可編輯的,則返回 true。 booleanisCellSelected(int row, int column) 如果指定的索引位于行和列的有效范圍內(nèi),并且位于該指定位置的單元格被選定,則返回 true。 booleanisColumnSelected(int column)  如果指

44、定的索引位于列的有效范圍內(nèi),并且位于該索引的列被選定,則返回 true。 booleanisEditing()   如果正在編輯單元格,則返回 true。 booleanisRowSelected(int row) 如果指定的索引位于行的有效范圍內(nèi),并且位于該索引的行被選定,則返回 true。 voidmoveColumn(int column, int targetColumn) 將視圖中的 column 列移動到當(dāng)前被 targetColumn 列所占用的位置。protected  

45、;StringparamString() 返回此表的字符串表示形式。 ComponentprepareEditor(TableCellEditor editor, int row, int column)    通過查詢 row、column 處單元格值的數(shù)據(jù)模型和單元格選擇狀態(tài)來準(zhǔn)備編輯器。 ComponentprepareRenderer(TableCellRenderer renderer, int row, int column)   通

46、過查詢 row、column 處單元格值的數(shù)據(jù)模型和單元格選擇狀態(tài)來準(zhǔn)備渲染器。 booleanprint()    一個(gè)便捷的方法,它顯示一個(gè)打印對話框,然后以 PrintMode.FIT_WIDTH 模式打印此 JTable,不打印標(biāo)題或腳注文本。 booleanprint(JTable.PrintMode printMode)           一個(gè)便捷的方法,它顯示一個(gè)打印對話框,然后以給定的打印模式打印此 JTab

47、le,不打印標(biāo)題或腳注文本。 booleanprint(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)           一個(gè)便捷的方法,它顯示一個(gè)打印對話框,然后以給定的打印模式打印此 JTable,打印指定的標(biāo)題和腳注文本。 booleanprint(JTable.PrintMode printMode, Mes

48、sageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive)           根據(jù)完全功能 print 方法的指定打印此表,將默認(rèn)打印機(jī)指定為打印服務(wù)。 booleanprint(JTable.PrintMode printMo

49、de, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service)           打印此 JTable。protected  booleanprocessKeyBinding

50、(KeyStroke ks, KeyEvent e, int condition, boolean pressed)           由于發(fā)生 KeyEvent e 而調(diào)用此方法處理 ks 的鍵綁定。 voidremoveColumn(TableColumn aColumn)           從此 JTable 的列數(shù)組中移除 a

51、Column。 voidremoveColumnSelectionInterval(int index0, int index1)           取消選中從 index0 到 index1 之間(包含兩端)的列。 voidremoveEditor()  丟棄編輯器對象并釋放它用于單元格呈現(xiàn)的資源。 voidremoveNotify()  調(diào)用 unconfigureEnclosingScrollPan

52、e 方法。 voidremoveRowSelectionInterval(int index0, int index1)           取消選中從 index0 到 index1 之間(包含兩端)的行。protected  voidresizeAndRepaint()等效于先調(diào)用 revalidate 再調(diào)用 repaint。 introwAtPoint(Point point) 返回 point 所在的行索引;如果結(jié)果

53、不在 0, getRowCount()-1 范圍內(nèi),則返回 -1。 voidselectAll()   選擇表中的所有行、列和單元格。 voidsetAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel) 設(shè)置此表的 autoCreateColumnsFromModel 標(biāo)志。 voidsetAutoCreateRowSorter(boolean autoCreateRowSorter) 指定其模型更改時(shí)是否應(yīng)該為表創(chuàng)建一個(gè)

54、RowSorter。 voidsetAutoResizeMode(int mode)  當(dāng)調(diào)整表的大小時(shí),設(shè)置表的自動調(diào)整模式。 voidsetCellEditor(TableCellEditor anEditor) 設(shè)置活動單元格編輯器。 voidsetCellSelectionEnabled(boolean cellSelectionEnabled)設(shè)置此表是否允許同時(shí)存在行選擇和列選擇。 voidsetColumnModel(TableColumnModel columnMode

55、l) 將此表的列模型設(shè)置為 newModel,并向其注冊以獲取來自新數(shù)據(jù)模型的偵聽器通知。 voidsetColumnSelectionAllowed(boolean columnSelectionAllowed)           設(shè)置是否可以選擇此模型中的列。 voidsetColumnSelectionInterval(int index0, int index1) 選擇從 index0 到 index1 之間(包含兩

56、端)的列。 voidsetDefaultEditor(Class<?> columnClass, TableCellEditor editor) 如果尚未在 TableColumn 中設(shè)置編輯器,則設(shè)置要使用的默認(rèn)單元格編輯器。 voidsetDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer) 如果沒有在 TableColumn 中設(shè)置渲染器,則設(shè)置要使用的默認(rèn)單元格渲染器。 voidsetDragEn

57、abled(boolean b) 打開或關(guān)閉自動拖動處理。 voidsetDropMode(DropMode dropMode) 設(shè)置此組件的放置模式。 voidsetEditingColumn(int aColumn)設(shè)置 editingColumn 變量。 voidsetEditingRow(int aRow) 設(shè)置 editingRow 變量。 voidsetFillsViewportHeight(boolean fillsViewportHeight) 設(shè)置

58、此表是否始終大到足以填充封閉視口的高度。 voidsetGridColor(Color gridColor)   將用來繪制網(wǎng)格線的顏色設(shè)置為 gridColor 并重新顯示它。 voidsetIntercellSpacing(Dimension intercellSpacing) 將 rowMargin 和 columnMargin(單元格之間間距的高度和寬度)設(shè)置為 intercellSpacing。 voidsetModel(TableModel dataModel)  

59、;將此表的數(shù)據(jù)模型設(shè)置為 newModel,并向其注冊以獲取來自新數(shù)據(jù)模型的偵聽器通知。 voidsetPreferredScrollableViewportSize(Dimension size)  設(shè)置此表視口的首選大小。 voidsetRowHeight(int rowHeight)    將所有單元格的高度設(shè)置為 rowHeight(以像素為單位),重新驗(yàn)證并重新繪制它。 voidsetRowHeight(int row, int rowHeight)  &

60、#160; 將 row 的高度設(shè)置為 rowHeight,重新驗(yàn)證并重新繪制它。 voidsetRowMargin(int rowMargin)           設(shè)置相臨行中單元格之間的間距。 voidsetRowSelectionAllowed(boolean rowSelectionAllowed)           設(shè)置是否可以選擇此模

61、型中的行。 voidsetRowSelectionInterval(int index0, int index1)           選擇從 index0 到 index1 之間(包含兩端)的行。 voidsetRowSorter(RowSorter<? extends TableModel> sorter)           設(shè)置

62、 RowSorter。 voidsetSelectionBackground(Color selectionBackground)           設(shè)置選定單元格的背景色。 voidsetSelectionForeground(Color selectionForeground)           設(shè)置選定單元格的前景色。 voidsetSe

63、lectionMode(int selectionMode)將表的選擇模式設(shè)置為只允許單個(gè)選擇、單個(gè)連續(xù)間隔選擇或多間隔選擇。 voidsetSelectionModel(ListSelectionModel newModel)           將此表的行選擇模型設(shè)置為 newModel,并向其注冊以獲取來自新數(shù)據(jù)模型的偵聽器通知。 voidsetShowGrid(boolean showGrid)設(shè)置表是否繪制單元格周圍的網(wǎng)格線。 

64、;voidsetShowHorizontalLines(boolean showHorizontalLines)設(shè)置表是否繪制單元格之間的水平線。 voidsetShowVerticalLines(boolean showVerticalLines) 設(shè)置表是否繪制單元格之間的垂直線。 voidsetSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke) 設(shè)置由于 JTable 為某個(gè)單元格轉(zhuǎn)發(fā)鍵盤事件而導(dǎo)致編輯器被激活時(shí),此 JTable 中的編輯器是否

65、獲得鍵盤焦點(diǎn)。 voidsetTableHeader(JTableHeader tableHeader) 將此 JTable 所使用的 tableHeader 設(shè)置為 newHeader。 voidsetUI(TableUI ui)設(shè)置呈現(xiàn)此組件并進(jìn)行重新繪制的 L&F 對象。 voidsetUpdateSelectionOnSort(boolean update) 指定排序后是否應(yīng)該更新選擇。 voidsetValueAt(Object aValue, int row, in

66、t column) 設(shè)置表模型中 row 和 column 位置的單元格值。 voidsorterChanged(RowSorterEvent e) RowSorter 以某種方式發(fā)生了更改的 RowSorterListener 通知。 voidtableChanged(TableModelEvent e)當(dāng)此表的 TableModel 生成 TableModelEvent 時(shí)調(diào)用。protected  voidunconfigureEnclosingScrollPane()  通過將封閉滾動窗

67、格的 columnHeaderView 替換為 null,可以起到 configureEnclosingScrollPane 的相反作用。 voidupdateUI() UIManager 發(fā)出的表明 L&F 已經(jīng)更改的通知。 voidvalueChanged(ListSelectionEvent e) 行選擇更改時(shí)調(diào)用,重新繪制來顯示新的選擇。 任務(wù)實(shí)施1.實(shí)現(xiàn)思路(1) 通過對話框輸入數(shù)據(jù)源、用戶名、密碼,連接數(shù)據(jù)庫;(2) 通過對話框輸入SQL語句,點(diǎn)擊按鈕執(zhí)行;(3) 通過ResultSetMetaData獲取記錄集的列數(shù)、列名、數(shù)據(jù)類型;(4) 通過JTable表格顯示數(shù)據(jù);2.程序代碼(1)主窗口實(shí)現(xiàn)代碼import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論