1

AbstractTableModel を拡張する TableModel に加えられた変更を JTable に表示させようとしています。すべてのドキュメントを挿入するヒープを作成し、ヒープ配列に 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を呼び出すとメソッド内で破棄され、順序付けられたノードを含む a が返されます。したがって、ノードを持つ順序付けられた配列がある場合、私の JTable はデータを表示しません。ここで、を実行せずにヒープから順序付けされていない配列を呼び出すと、JTable にすべてが表示されます。heap.heapSort()Nodo[]datosheap.heapSort()

@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()が、注文しました。これについて何か助けていただければ幸いです、ありがとう。

4

1 に答える 1