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 类的一个方法,负责为我在 Views 中调用的表设置表模型tableEvent
。
Controller类使用上面的方法来设置改变ClasstableEvent
的状态。Views
请注意tableEvent
,视图中是空的/那里什么都没有。模型将值传递rs
给Controller
which 将更改表格的显示并填充值。
这就是我的意思:
view.tableEvent.setModel(model.getTableData());
但是,我试图将列的宽度设置为 inModel
而不是Views
through tableEvent.getColumnModel().getColumn(1).setPreferredWidth(60);
。如果我将表本身传递给方法getTableData()
以设置列的宽度,它实际上并没有工作。有没有一种方法可以以某种方式在 getTableData() 方法中的 Model 类中指定我想要的表的前 4 列的宽度,以便它始终保持一致。现在我在 Views 类的构造函数的一部分有这个,这显然意味着它只在初始化时才达到我想要的宽度。