Java JTable和构造函数参数
我正在学习如何在Swing中使用JTables。我已经找到了连接数据库并检索结果集的方法。我还可以使用第一个选项显示数据(见下文) a) 我想确保我理解使用/传递TableModel而不是直接传递行和列的想法是为了能够使用AbstractTableModel中可用的内置方法;DefaultTableModel和ListTableModel类 b) 什么是自定义表格模型 到目前为止,我遇到了4种方法:Java JTable和构造函数参数,java,swing,jtable,defaulttablemodel,Java,Swing,Jtable,Defaulttablemodel,我正在学习如何在Swing中使用JTables。我已经找到了连接数据库并检索结果集的方法。我还可以使用第一个选项显示数据(见下文) a) 我想确保我理解使用/传递TableModel而不是直接传递行和列的想法是为了能够使用AbstractTableModel中可用的内置方法;DefaultTableModel和ListTableModel类 b) 什么是自定义表格模型 到目前为止,我遇到了4种方法: 将列和行作为对象直接传递给JTable构造函数 例: 二,。从实现AbstractTableMo
4.ListTableModel当您直接传递数据时,JTable将在内部创建一个DefaultTableModel,您可以通过调用
table.getModel()
来获取该模型
不同的TableModel具有不同的功能,您可以通过创建一个实现TableModel或扩展AbstractTableModel(或DefaultTableModel)的类来实现自己的功能。这背后的想法是,您有时需要的不仅仅是原始表数据
例如,如果要将对象附着到每行:
您可以编写一个表格模型,每行保存一个对象,并提供类似对象getObject(introwindex)
和void setObject(introwindex,object object)
的方法。
为此,您需要在TableModel中保留一个额外的数组或列表,该数组或列表包含对象,并且始终与行数相同
另一个原因可能是tablemodel在滚动时加载行数据,或者希望动态显示来自多个数据源的数据
TableModel不一定要保存数据,它只是将数据提供给JTable。您可能希望有一个通读,它将回答您的许多问题
JTable tab = new JTable(Object [][] rows, Object[] cols);
MyModel model = new MyModel(Object[][] obj1, String[] header);
//MyModel is a class that extends AbstractTableModel.
//MyModel has an ArrayList<Object[]> to store obj1[]
//MyModel implements getRowCount(), getColumnCount() and
getValueAt(int rowIndex, int columnIndex) and also getColumnName(int index)
JTable tab = new JTable(model);
DefaultTableModel model = new DefaultTableModel(String data[][],String col[]);
(or)
DefaultTableModel model = DefaultTableModel(Vector data, Vector columnNames)
JTable table = new JTable(model);