今天用java写了个日历类CalendarSwing,很久没写swing,果然遇到JTable时更新表格又炸了,问题如下:
1.DefaultTableModel的使用,表格显示不出。
//setModel要在new JTable(defaultTableModel2)之前
JTable table=new JTable();
DefaultTableModel defaultTableModel2 = new DefaultTableModel(a,name);
table.setModel(defaultTableModel2);
table=new JTable(defaultTableModel2);
2.button触发点击事件后,表格更新问题。
//表格更新时用了同一个model,所以在初始化和更改的方法体里不同声明。
public void initTable(int year,int month){
int day[]= this.setFirstDay(year, month);
Object name[]={"日","一","二","三","四","五","六"};
Object a[][]=getTableArray(day);
DefaultTableModel defaultTableModel = new DefaultTableModel(a,name);
table.setModel(defaultTableModel);
table=new JTable(defaultTableModel);
}
public void setCalendar(int[] day){
Object name[]={"日","一","二","三","四","五","六"};
Object a[][]=getTableArray(day);
DefaultTableModel defaultTableModel2 = new DefaultTableModel(a,name);
table.setModel(defaultTableModel2);
table=new JTable(defaultTableModel2);
getContentPane().remove(scroll);
scroll=new JScrollPane(table);
scroll.setPreferredSize(new Dimension(500, 105));
add(scroll);
validate();}