Java Reference
In-Depth Information
ResultSetTableModel Class
Class ResultSetTableModel (Fig. 24.25) extends class AbstractTableModel (package
javax.swing.table ), which implements interface TableModel . ResultSetTableModel
overrides TableModel methods getColumnClass , getColumnCount , getColumnName , get-
RowCount and getValueAt . The default implementations of TableModel methods is-
CellEditable and setValueAt (provided by AbstractTableModel ) are not overridden,
because this example does not support editing the JTable cells. The default implementa-
tions of TableModel methods addTableModelListener and removeTableModelListener
(provided by AbstractTableModel ) are not overridden, because the implementations of
these methods in AbstractTableModel properly add and remove event listeners.
1
// Fig. 24.25: ResultSetTableModel.java
2
// A TableModel that supplies ResultSet data to a JTable.
3
import java.sql.Connection;
4
import java.sql.Statement;
5
import java.sql.DriverManager;
6
import java.sql.ResultSet;
7
import java.sql.ResultSetMetaData;
8
import java.sql.SQLException;
9
import javax.swing.table.AbstractTableModel;
10
11
// ResultSet rows and columns are counted from 1 and JTable
12
// rows and columns are counted from 0. When processing
13
// ResultSet rows or columns for use in a JTable, it is
14
// necessary to add 1 to the row or column number to manipulate
15
// the appropriate ResultSet column (i.e., JTable column 0 is
16
// ResultSet column 1 and JTable row 0 is ResultSet row 1).
17
public class ResultSetTableModel extends AbstractTableModel
18
{
19
private final Connection connection;
20
private final Statement statement;
21
private ResultSet resultSet;
22
private ResultSetMetaData metaData;
23
private int numberOfRows;
24
25
// keep track of database connection status
private boolean connectedToDatabase = false ;
26
27
28
// constructor initializes resultSet and obtains its metadata object;
29
// determines number of rows
30
public ResultSetTableModel(String url, String username,
31
String password, String query) throws SQLException
32
{
33
// connect to database
34
connection = DriverManager.getConnection(url, username, password);
35
36
// create Statement to query database
statement = connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE ,
ResultSet.CONCUR_READ_ONLY );
37
38
39
Fig. 24.25 | A TableModel that supplies ResultSet data to a JTable . (Part 1 of 4.)
 
Search WWH ::




Custom Search