2016-06-02 11 views
-1

Ich habe JTable mit Daten von DataBase. Sobald der Tisch gefüllt ist, aber nicht mehr (total zufällig). Verbindung mit DB ist korrekt. Ich habe keine Ahnung, warum in einer Situation der Tisch gefüllt ist und in anderen nicht. Es gibt absolut keine Regel.JTable nicht gefüllt

Modellklasse:

public class MaterialModel extends AbstractTableModel 
{ 
    public List<Material> materials = new ArrayList<Material>(); 
    String[] columns = {"ID_Material", "Nazwa"}; 

public int getRowCount() { 
    return this.materials.size(); 
} 

public int getColumnCount() { 
    return columns.length; 
} 

public String getColumnName(int col){ 
    return columns[col]; 
} 

public Object getValueAt(int rowIndex, int columnIndex) { 
    Material material = materials.get(rowIndex); 
    switch (columnIndex) 
    { 
     case 0: return material.id; 
     case 1: return material.name; 
    } 
    return null; 
} 

public void setListMaterials(List<Material> listMaterials){ 
    this.materials = listMaterials; 
} 

public void reset(){ 
    this.materials.clear(); 
} 
} 

Form-Klasse:

public class Form extends JFrame{ 

private JTable materialTable; 
MaterialDAO materialDAO; 
public MaterialModel materialModel; 

public Form() throws SQLException { 
    super("Magazyn"); 
    setContentPane(mainPane); 
    pack(); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setSize(500,500); 
    this.initComponets(); 
    materialDAO = new MaterialDaoImpl(); 
    materialTable.setModel(new MaterialModel()); 
    this.fillTable(); 
} 

public void fillTable() throws SQLException { 

    this.materialTable.repaint(); 
    materialModel = (MaterialModel) this.materialTable.getModel(); 
    materialModel.reset(); 
    materialModel.setListMaterials(materialDAO.getAllMaterials()); 
} 


} 

Danke sehr viel für Ihre Hilfe.

+0

Ich denke, dass in diesem Stadium müssen Sie mehr Debugging, vielleicht am besten durch Protokollierung, und dies wird wahrscheinlich geben Sie mehr Informationen und Hilfe, als wir bieten können. –

Antwort

0

Wie ich sehe, gibt es keine SQL-Abfrage, überprüfen Sie, ob Sie eine SQL-Abfrage ausführen, ich weiß nicht, ob Sie Hibernate oder etwas anderes verwenden, versuchen, den Teil der SQL-Abfrage ausführen, auf diese Weise wir kann den Fehler sehen, den Sie gemacht haben.

+0

Verbinden mit DB-Jest korrekt. Ich habe Verbindung und ausführende Abfrage in anderer Klasse. Ich habe es getestet, Daten in der Konsole geschrieben. Ich habe ein Problem mit dem Abfülltisch. –

+0

müssen Sie Ihre Daten wie folgt zum Modell hinzufügen: YourTableModel.setDataVector (your_Data_Vector, the_Header); –