JTable?

dadon511

Mitglied
Hallo noch mal!

Ich habe schon seit Tagen ein Problem, finde aber keine Lösung.

Ich brauche unbedingt Hilfe!

In meinem Programm gibt es 2 Mögligkeiten wie die Daten in eine JTable reinkommen.
Einmal werden die Daten vom Benutzer eingegeben, einmal aus einer csv-Datei importiert.
Danach kommt tabellePruefen(); und datenBerechnen();. Dabei läuft bei den csv-Daten alles ok, bei den Benutzer-Daten aber treten Probleme auf (bei Stichprobenvarianz und Kovarianz kommt 0,0 raus).

Warum werden die Tabellendaten unterschiedlich behandelt?

Hilft mir bitte, ich weiß echt nicht mehr weiter!

Code:
 public void tabellePruefen()
    {   
        if (tabelle.isEditing())
            {
                tabelle.getCellEditor().stopCellEditing();
            }
        boolean abbruch = false;
        double inhaltx = 0, inhalty = 0;
        
        int row = tableModel.getRowCount();
        xWerte = new double[row];
        yWerte = new double[row];
        int i;
        while(ok == false)
        {
        for (i = 0; i < row ; i++) 
        {
            Object x = tableModel.getValueAt(i,1);
            Object y = tableModel.getValueAt(i,2);
            if(x==null || y==null)
            {       
                JOptionPane.showMessageDialog(panelGebundeneHochrechnung, "Bitte alle Zellen der Tabelle ausfühlen!", 
                                                                                            null, JOptionPane.ERROR_MESSAGE, null );
                abbruch = true;
                
            }
            if (abbruch == false)
            { 
                try
                {        
                    xWerte[i] = Double.parseDouble(x.toString().replace(',','.'));
                    yWerte[i] = Double.parseDouble(y.toString().replace(',','.'));
                }
                catch(NumberFormatException error)
                    {
                        JOptionPane.showMessageDialog( panelGebundeneHochrechnung, "Bitte nur Zahlen in die Tabelle eintragen!", 
                                                                                null, JOptionPane.ERROR_MESSAGE, null );
                        abbruch = true;
                    }
            }
      }
        if(abbruch == true)
        {
            break;
        }
       
            ok = true;
        }

Code:
public void datenBerechnen()
    {
        umfangn_t = xWerte.length;
        xquer_t = fachkonzept.Stichprobenverfahren.getMittelwert(xWerte);
        yquer_t = fachkonzept.Stichprobenverfahren.getMittelwert(yWerte);
        varianzx_t = fachkonzept.Stichprobenverfahren.getStichprobenvarianz(xWerte);
        varianzy_t = fachkonzept.Stichprobenverfahren.getStichprobenvarianz(yWerte);
        kovarianz_t = fachkonzept.Stichprobenverfahren.getKovarianzStichprobe(xWerte, yWerte);
        
    }
Code:
    public static double getMittelwert(double[] w)
    {
        double summeW = 0;
        int n = w.length;
        for(int i = 0; i < n; i++)
        {
            summeW = summeW + w[i];
        }
        double mittelwert = summeW/n;
        return mittelwert;
    }
    
    public static double getStichprobenvarianz(double[] w)
    {
        double summeW = 0;
        double summeWquadrat = 0;
        int n = w.length;
        for(int i = 0; i < n; i++)
        {
            summeW = summeW + w[i];
            summeWquadrat = summeWquadrat + w[i]*w[i];
        }
        double mittelwert = summeW/n;
        double stichprobenverianz = (summeWquadrat - (summeW * summeW) / n) / (n - 1);
        
        System.out.println(mittelwert);
        System.out.println(stichprobenverianz);
        
        return stichprobenverianz;
    }
 
Zuletzt bearbeitet:
Zurück