@jose
AbstractTableModel
и DefaultTableColumnModel
являются двумя основными классами, которые обеспечивают модель данных и конфигурацию столбцов для JTable
в Java.
AbstractTableModel
предоставляет абстрактную модель данных для JTable
, которая может быть настроена и настроена в соответствии с конкретными потребностями приложения. Для использования AbstractTableModel
вы должны создать класс, который расширяет AbstractTableModel
и реализует несколько методов, которые определяют, как данные будут храниться и отображаться в таблице.
Например, вот пример простой модели данных, основанной на AbstractTableModel
, которая содержит три столбца и три строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import javax.swing.table.AbstractTableModel; public class MyTableModel extends AbstractTableModel { private String[] columnNames = {"First Name", "Last Name", "Age"}; private Object[][] data = { {"John", "Doe", 30}, {"Jane", "Doe", 25}, {"Bob", "Smith", 40} }; public int getColumnCount() { return columnNames.length; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return columnNames[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } public boolean isCellEditable(int row, int col) { // Все ячейки недоступны для редактирования return false; } } |
DefaultTableColumnModel
, с другой стороны, используется для управления конфигурацией столбцов в JTable
. DefaultTableColumnModel
предоставляет методы для настройки ширины столбцов, заголовков столбцов и других атрибутов.
Например, вот пример создания DefaultTableColumnModel
с двумя столбцами и установки ширины первого столбца на 100 пикселей:
1 2 3 4 5 6 7 8 |
import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableColumn; DefaultTableColumnModel columnModel = new DefaultTableColumnModel(); TableColumn column1 = new TableColumn(0, 100); TableColumn column2 = new TableColumn(1); columnModel.addColumn(column1); columnModel.addColumn(column2); |
Чтобы использовать AbstractTableModel
и DefaultTableColumnModel
в JTable
, вы должны создать экземпляры этих классов и установить их в JTable
следующим образом:
1 2 |
JTable table = new JTable(new MyTableModel()); table.setColumnModel(columnModel); |
Здесь мы создаем экземпляр JTable
, передавая в качестве аргумента экземпляр нашей модели данных MyTableModel
. Затем мы устанавливаем DefaultTableColumnModel
для таблицы, чтобы настроить ее столбцы.
Это лишь примеры, и
@jose
может потребоваться дополнительная настройка в зависимости от конкретных потребностей вашего приложения. Однако, приведенный выше пример демонстрирует основной подход к использованию AbstractTableModel и DefaultTableColumnModel в JTable для отображения данных в таблице и управления ее столбцами.