Java 刷新JTable
我正在加载我的JTable数据,如下所示:Java 刷新JTable,java,swing,jtable,tablemodel,Java,Swing,Jtable,Tablemodel,我正在加载我的JTable数据,如下所示: ColisDAO colisDAO = new ColisDAO(DatabaseConnection.getInstance()); Object[][] colisData = new Object[colisDAO.count()][]; public ColisPanel() { Set<Colis> listColis = colisDAO.getAllColis(); int i = 0;
ColisDAO colisDAO = new ColisDAO(DatabaseConnection.getInstance());
Object[][] colisData = new Object[colisDAO.count()][];
public ColisPanel() {
Set<Colis> listColis = colisDAO.getAllColis();
int i = 0;
Iterator<Colis> iterator = listColis.iterator();
while(iterator.hasNext()) {
Colis currentColis = iterator.next();
colisData[i] = new Object[]{
currentColis.idColis(), currentColis.idDescriptionColis(),
currentColis.affectataire(), currentColis.module(), currentColis.optionnel(), currentColis.secteur(),
currentColis.designationColis(), currentColis.designationContenu(), currentColis.poid(), currentColis.valeur(),
currentColis.iata(), currentColis.projection(), currentColis.observation()};
i++;
}
initComponents();
colisTable.setRowSelectionAllowed(true);
}
colisTable.setModel(new javax.swing.table.DefaultTableModel(
colisData,
new String [] {
"idColis", "idDescriptionColis", "affectataire", "module", "optionnel",
"secteur", "designationColis", "designationContenu",
"poid", "valeur", "iata", "projection", "observation"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false,
false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
ColisDAO-ColisDAO=new-ColisDAO(DatabaseConnection.getInstance());
Object[]colisData=新对象[colisDAO.count()];
公共大肠杆菌肽(){
设置listColis=colisDAO.getAllColis();
int i=0;
迭代器迭代器=listColis.Iterator();
while(iterator.hasNext()){
Colis currentColis=iterator.next();
colisData[i]=新对象[]{
currentColis.idColis(),currentColis.idDescriptionColis(),
currentColis.affectataire()、currentColis.module()、currentColis.optionnel()、currentColis.secteur(),
currentColis.designationColis()、currentColis.DesignationContentu()、currentColis.poid()、currentColis.valeur()、,
currentColis.iata()、currentColis.projection()、currentColis.observation()};
i++;
}
初始化组件();
colisTable.setRowSelectionAllowed(真);
}
colisTable.setModel(新的javax.swing.table.DefaultTableModel(
科里斯达,
新字符串[]{
“idColis”、“idDescriptionColis”、“affectataire”、“module”、“optionnel”,
“部门”、“指定内容”、“指定内容”,
“poid”、“valeur”、“iata”、“投影”、“观察”
}
) {
boolean[]canEdit=新的boolean[]{
假,假,假,假,假,假,假,
假,假,假,假,假,假,假,假,假
};
公共布尔值isCellEditable(int-rowIndex、int-columnIndex){
返回canEdit[columnIndex];
}
});
是否可以直接将JTable与Colis对象绑定,而不是使用对象数组数组
另外,我查看了删除一行后重新加载Jtable数据的情况,我理解了为什么fireTableDataChanged方法不起作用。因为我只是不更新模型
我该怎么做呢?首先,尝试使用javax.swing.table.AbstractTableModel,不要再使用DefaultTable模型。为了更快地获得更好的帮助,请发布一个(最小完整的可验证示例)或(简短、自包含、正确的示例)。你能更详细地阐述你的问题陈述吗;请注意,
addRow()
为您触发正确的事件。