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
ますViews
。tableEvent
ビューには空/何もないことに注意してください。モデルは の値を渡しrs
てController
、テーブルの表示を変更して値を設定します。
私が意味することは次のとおりです。
view.tableEvent.setModel(model.getTableData());
ただし、列の幅をスルーでModel
はなくに設定しようとしています。列の幅を設定するためにテーブル自体をメソッドに渡すと、実際には機能しません。モデル クラスのテーブルの最初の 4 列の希望の幅を geTableData() メソッドで何らかの方法で指定して、常に一貫性を保つ方法はありますか。現在、Views クラスのコンストラクターの一部にこれがあります。これは明らかに、初期化時にのみ目的の幅になることを意味します。 Views
tableEvent.getColumnModel().getColumn(1).setPreferredWidth(60);
getTableData()