一. 最开始我讲JTable加到滚动条 上,再把滚动条加到JPanl上, 最后将JPanel加到JFrame上面。可是怎么都没办法刷新,即便加了this.repaint( )也不行。
二. 后来发现是JPanel的问题,去掉JPanel 就可以了。
//刷新函数
public void flushTable(String[][] crsMsg){
this.remove(jl);
jsp.remove(jt);
//jp.remove(jsp);
this.remove(jsp);
allNum = crsMsg.length;
System.out.println(allNum);
jl = new JLabel("我的知识库: "+allNum);
jl.setFont(titleFt);
jl.setBounds(470,20,400,40);
this.add(jl);
dtm = new DefaultTableModel(crsMsg,headers);
jt = new JTable(dtm){
public boolean isCellEditable(int row, int column)
{
return false;//表格不允许被编辑
}
};
jt.setRowHeight(35);
jt.setFont(myfont);
jsp = new JScrollPane(jt);
jsp.setBounds(160,70,840,450);
// jp = new JPanel();
// jp.setBounds(160,70,840,450);
// jp.setLayout(new GridLayout());
//jp.add(jsp);
// jp.repaint();
// jp.validate();
this.add(jsp);
this.repaint();
}