我正在尝试让我的 JTable 显示对扩展 AbstractTableModel 的 TableModel 所做的更改。我创建了一个堆来插入所有文档,然后在我的堆数组上应用 heapSort,所以这个有序数组应该是我的 TableModel 数据。它看起来像这样:
public class ModeloTabla extends AbstractTableModel {
private Heap heap;
private Nodo[] datos;
@Override
public int getRowCount() {
return heap.getNumNodos();
}
@Override
public int getColumnCount() {
return 4;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if ( !heap.empty() ) {
datos = heap.heapSort();
}
Documento doc = datos[rowIndex].getDocumento();
switch ( columnIndex ) {
case 0:
return doc.getNombre();
case 1:
return doc.getHojas();
case 2:
return doc.getPrioridad();
default:
return null;
}
}
}
getValueAt
当我调用堆内部数组时,该方法heap.heapSort()
内部被销毁,并返回Nodo[]
带有有序节点的 a。所以当datos
有一个带节点的有序数组时,我的 JTable 不会显示数据。现在,如果我不执行heap.heapSort()
,而只是从堆中调用无序数组,我的 JTable 会显示所有内容。
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
datos = heap.getDatos();
Documento doc = datos[rowIndex].getDocumento();
... //This works but datos is unordered
}
}
我试过用里面的有序数组替换堆无序数组并heapSort()
使用它返回它,getDatos()
但是JTable再次不会出现,我也检查了返回数组heapSort()
,它运行良好,数据与来自getDatos()
但订购的那个。对此的任何帮助将不胜感激,谢谢。