JTable에 이상한 문제가 있습니다. 방법 addRows
는보기를 업데이트 할 jTable
을 강요하지 않습니다DefaultTableModel에 새로운 행을 추가 할 때 JTable이 뷰를 업데이트하지 않는 이유는 무엇입니까?
public class VirusTable extends JTable {
private String[] columnNames = { "", "Virus", "Path", "Size", "Created", "Last Mofified" };
DefaultTableModel tableModel;
public VirusTable() {
super();
tableModel = (DefaultTableModel) super.getModel();
tableModel.setColumnIdentifiers(columnNames);
// super.setFillsViewportHeight(true);
// super.setIntercellSpacing(new Dimension(5, 5));
// super.setRowSelectionAllowed(false);
// super.setColumnSelectionAllowed(false);
}
public void addRows(Collection<UserFile> viruses) {
System.out.println("AddRows=" + viruses);
for (UserFile virus : viruses) {
tableModel.addRow(virus.toRowData());
}
// tableModel.fireTableDataChanged();
// tableModel.fireTableStructureChanged();
int rowCount = super.getRowCount();
// super.revalidate();
// super.repaint();
System.out.println("rowCount=" + rowCount);
}
}
addRows
방법은 SwingWorker.process
방법에서 호출됩니다. 흥미롭게도 rowCount
은 항상 올바르지 만 행은 JTable
에 표시되지 않습니다.
나는 모든 것을 시도했지만 아무 도움이되지 않습니다. 짧은 실행 가능한 데모를 만들고 싶었지만이 버그를 구현할 수 없습니다.
이 프로젝트 on github을 게시하고 무슨 문제가 있는지 설명했습니다.
짧은 데모에서 버그를 구현할 수없는 경우 버그가 다른 곳에서 발생하고 있습니까? –
jTable에서보기를 새로 고칠 수없는 것을 제안 할 수 있습니까? –
'jTable이보기를 새로 고치는 것을 막을 수있는 방법을 제안 해 주시겠습니까? '아마도 JTable 인스턴스가 두 개있을 수 있습니다. 하나는 GUI에 추가하고 다른 하나는 데이터를 업데이트하려고 시도한 것입니다. 적절한 'SSCCE'가 없다면 그것은 단지 야생의 추측 일뿐입니다. – camickr