public TableModel getTableData() {
TableModel model=null;
try {
String sql = "SELECT eventID as 'Event ID', date as 'Date',eventName as 'Name', time as 'Start Time' FROM Event";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
model = (DbUtils.resultSetToTableModel(rs));
//CODE TO SET WIDTH OF JTABLE IN VIEWS
}
catch(SQLException e){
e.printStackTrace();
}
finally {
try {rs.close(); pst.close();}
catch(SQLException e){} }
return model;
}
Выше показан метод класса Model, отвечающий за настройку модели таблицы для таблицы, которая у меня есть в представлениях под названием tableEvent
.
Класс Controller использует описанный выше метод для изменения состояния класса tableEvent
of Views
. Обратите внимание, что tableEvent
в представлениях пусто/ничего. Модель передает значения rs
в Controller
, что затем изменит отображение таблицы и заполнит значения.
Вот что я имею в виду:
view.tableEvent.setModel(model.getTableData());
Однако я пытаюсь установить ширину столбцов в Model
, а не в Views
через tableEvent.getColumnModel().getColumn(1).setPreferredWidth(60);
. если я передам саму таблицу методу getTableData()
, чтобы установить ширину столбца, это действительно не работает. Есть ли способ указать желаемую ширину первых 4 столбцов таблицы в классе Model в методе geTableData() каким-то образом, чтобы она всегда была согласованной. Прямо сейчас у меня есть это в части конструктора класса Views, что, очевидно, означает его только для моей желаемой ширины только при инициализации.