Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Jtable come si fa ad far visualizzare i risultati

    io ho un mettodo aggiorna in una classe dove inserisco dei valori in una matrice di object dentro una derteminata posizione ad esempio
    codice:
    tab[8][1]=1
    per visualizzare un 1 nella posizione ottava riga e 1 colonna della Jtable. ma nella fase di esecuzione non escono i risultati.

    come risolvo?

    questo è il metodo:

    codice:
    public void Aggiorna() {
            double delta, d, xf, yf, yv, x1, x2, a, b, c;
            int i = parabole.size();
                a = parabole.get(i).getA();
                b = parabole.get(i).getB();
                c = parabole.get(i).getC();
                tab[4][1] = 0 + "\t" + ";" + "\t" + df.format(c);
                delta = parabole.get(i).getDelta();
                d = parabole.get(i).getD();
                xf = parabole.get(i).getXF();
                yf = parabole.get(i).getYF();
                yv = parabole.get(i).getYV();
                tab[7][1] = "X=" + "\t" + df.format(xf);
                tab[0][1] = df.format(xf) + "\t" + ";" + "\t" + df.format(yv);
                tab[1][1] = df.format(xf) + "\t" + ";" + "\t" + df.format(yf);
                tab[6][1] = "Y=" + "\t" + df.format(d);
                if (a < 0) {
                    tab[9][1] = "verso il basso";
                    if (a == -1) {
                        if (b < 0) {
                            if (b == -1) {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + "x" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + "x";
                                } else {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + "x" + df.format(c);
                                }
                            } else {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + df.format(b) + "x" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + df.format(b) + "x";
                                } else {
                                    tab[8][1] = "Y=" + "-" + "x^2" + "-" + df.format(b) + "x" + df.format(c);
                                }
                            }
                        } else if (b == 0) {
                            if (c < 0) {
                                tab[8][1] = "Y=" + "-" + "x^2" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + "-" + "x^2";
                            } else {
                                tab[8][1] = "Y=" + "-" + "x^2" + "x" + df.format(c);
                            }
                        } else {
                            if (c < 0) {
                                tab[8][1] = "Y" + "=" + "-" + "x^2" + df.format(b) + "x" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y" + "=" + "-" + "x^2" + df.format(b) + "x";
                            } else {
                                tab[8][1] = "Y" + "=" + "-" + "x^2" + df.format(b) + "x" + df.format(c);
                            }
                        }
                    } else {
                        if (b < 0) {
                            if (b == -1) {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + "x" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + "x";
                                } else {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + "x" + df.format(c);
                                }
                            } else {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + df.format(b) + "x" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + df.format(b) + "x";
                                } else {
                                    tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + df.format(b) + "x" + df.format(c);
                                }
                            }
                        } else if (b == 0) {
                            if (c < 0) {
                                tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + "-" + df.format(a) + "x^2";
                            } else {
                                tab[8][1] = "Y=" + "-" + df.format(a) + "x^2" + df.format(c);
                            }
                        } else {
                            if (c < 0) {
                                tab[8][1] = "Y" + "=" + "-" + df.format(a) + "x^2" + df.format(b) + "x" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y" + "=" + "-" + df.format(a) + "x^2" + df.format(b) + "x";
                            } else {
                                tab[8][1] = "Y" + "=" + "-" + df.format(a) + "x^2" + df.format(b) + "x" + df.format(c);
                            }
                        }
                    }
                    if (delta < 0) {
                        System.out.println("nessuna soluzione reale!");
                        tab[5][1] = "parabola esterna";
    
                    } else if (delta == 0) {
                        System.out.println("due soluzioni reali e coeincidenti!");
                        tab[5][1] = "parabola tagente";
                        x1 = parabole.get(i).getX1();
                        x2 = x1;
                        tab[2][1] = df.format(x1) + "\t" + ";" + "\t" + 0;
                        tab[3][1] = df.format(x2) + "\t" + ";" + "\t" + 0;
    
                    } else {
                        System.out.println("due soluzioni!");
                        x1 = parabole.get(i).getX1();
                        x2 = parabole.get(i).getX2();
                        tab[5][1] = "parabola seccante";
                        tab[2][1] = df.format(x1) + "\t" + ";" + "\t" + 0;
                        tab[3][1] = df.format(x2) + "\t" + ";" + "\t" + 0;
                    }
                } else if (a == 0) {
                    System.err.println("non ci sono parabole!");
                } else {
                    delta = parabole.get(i).getDelta();
                    tab[9][1] = "verso l'alto";
                    if (a == 1) {
                        if (b < 0) {
                            if (b == -1) {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "\t" + "x^2" + "\t" + "-" + "x" + "-" + "\t" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "\t" + "x^2" + "\t" + "-" + "x";
                                } else {
                                    tab[8][1] = "Y=" + "\t" + "x^2" + "\t" + "-" + "x" + "\t" + df.format(c);
                                }
                            } else {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + "x^2" + "\t" + "-" + df.format(b) + "x" + "\t" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + "x^2" + "\t" + "-" + df.format(b) + "x";
                                } else {
                                    tab[8][1] = "Y=" + "x^2" + "\t" + "-" + df.format(b) + "x" + df.format(c);
                                }
                            }
                        } else if (b == 0) {
                            if (c < 0) {
                                tab[8][1] = "Y=" + "x^2" + "\t" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + "x^2";
                            } else {
                                tab[8][1] = "Y=" + "x^2" + "\t" + df.format(c);
                            }
                        } else {
                            if (c < 0) {
                                tab[8][1] = "Y=" + "x^2" + "\t" + df.format(b) + "x" + "\t" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + "x^2" + "\t" + df.format(b) + "x";
                            } else {
                                tab[8][1] = "Y=" + "x^2" + "\t" + df.format(b) + "x" + "\t" + df.format(c);
                            }
                        }
                    } else {
                        if (b < 0) {
                            if (b == -1) {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + "x" + "\t" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + "x";
                                } else {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + "x" + "\t" + df.format(c);
                                }
                            } else {
                                if (c < 0) {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + df.format(b) + "x" + "\t" + "-" + df.format(c);
                                } else if (c == 0) {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + "\t" + df.format(b) + "x";
                                } else {
                                    tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + df.format(b) + "x" + "\t" + df.format(c);
                                }
                            }
                        } else if (b == 0) {
                            if (c < 0) {
                                tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + df.format(a) + "x^2";
                            } else {
                                tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + df.format(c);
                            }
                        } else {
                            if (c < 0) {
                                tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + df.format(b) + "x" + "\t" + "-" + df.format(c);
                            } else if (c == 0) {
                                tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + df.format(b) + "x";
                            } else {
                                tab[8][1] = "Y=" + df.format(a) + "x^2" + "\t" + df.format(b) + "x" + "\t" + df.format(c);
                            }
                        }
                    }
                    if (delta < 0) {
                        System.out.println("nessuna soluzione reale!");
                        tab[5][1] = "parabola esterna";
    
                    } else if (delta == 0) {
                        System.out.println("due soluzioni reali coeicidenti!");
                        x1 = parabole.get(i).getX1();
                        x2 = x1;
                        tab[5][1] = "parabola tagente";
                        tab[2][1] = df.format(x1) + "\t" + ";" + "\t" + 0;
                        tab[3][1] = df.format(x2) + "\t" + ";" + "\t" + 0;
    
                    } else {
                        System.out.println("due soluzioni!");
                        x1 = parabole.get(i).getX1();
                        x2 = parabole.get(i).getX2();
                        tab[5][1] = "parabola seccante";
                        tab[2][1] = df.format(x1) + "\t" + ";" + "\t" + 0;
                        tab[3][1] = df.format(x2) + "\t" + ";" + "\t" + 0;
                    }
    
                }
            
        }
    questo è l'errore che esce:

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    A parte il fatto che con il codice che hai postato fai un'assegnamento di dati nella posizione nona riga e seconda colonna (gli array sono 0-based, quindi: 0 = prima riga, 1 = seconda riga, ecc; stessa cosa per le colonne).
    codice:
    // Qui assegni il valore 1, alla nona riga e seconda colonna
    tab[8][1]=1
    L'eccezione è chiara: stai cercando di accedere alla posizione 0 di un array di dimensione 0 (quindi un array senza nessuna cella).


    Controlla il codice alla posizione che ti viene indicata (l'eccezione non è tutta lì: quando viene sollevata un'eccezione, la JVM indica sempre anche il nome del file e la riga dove questa viene sollevata) e verifica se la matrice è veramente inizializzata e con quali valori.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    grazie. ma anche se inserisco un ciclo while nn mi visulizza il risultati ma nel caso del while nn escono errori.
    e il ciclo lo imposto cosi:
    codice:
    while(i<parabole.size()){

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Io non ho nemmeno guardato il codice (se c'è un while, un for o quel che c'è) perchè, senza vedere la parte di inizializzazione della matrice si fa ben poco.

    Io ho solo detto di guardare la riga indicata dall'eccezione e controllare che in quel punto la matrice sia inizializzata e sia dimensionata correttamente.

    Nel codice che hai postato fai tante assegnazioni a celle della matrice... ma non si vede da nessuna parte come crei questa matrice, quindi che dimensioni le dai.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    a ok. cmq è una matrice object di 10 righe e 2 colonne
    questo è il codice dove si vede diciamo la nascita della mia matrice.
    codice:
    package parabola;
    
    import java.text.DecimalFormat;
    import java.util.ArrayList;
    
    public class gestioneTabella extends Object {
    
        ArrayList<parabolina> parabole;
        int righe, colonne;
        Object[][] tab;
        DecimalFormat df;
    
        public gestioneTabella() {
            this.colonne = 2;
            this.righe = 10;
            this.df = new DecimalFormat("#,##0.00");
            this.tab = new Object[righe][colonne];
            this.parabole = new ArrayList<parabolina>();
            tab[0][0] = "Vertice:";
            tab[1][0] = "Fuoco:";
            tab[2][0] = "Int X1:";
            tab[3][0] = "int X2:";
            tab[4][0] = "Int Y:";
            tab[5][0] = "Int D:";
            tab[6][0] = "Direttrice:";
            tab[7][0] = "Asse Simmetria:";
            tab[8][0] = "Equazione Parabola:";
            tab[9][0] = "Concavità:";
        }
    
        public int getColonne() {
            return colonne;
        }
    
        public int getRighe() {
            return righe;
        }
    
        public Object getValore(int r, int c) {
            return tab[r][c];
        }
    
        public String getnomiColonne(int c) {
            if (c == 0) {
                return "risultato";
            } else {
                return "valore";
            }
        }

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ok. Per buona pratica di programmazione, nel costruttore dovresti inizializzare anceh tutti gli elementi della colonna 1, non solo quelli della colonna 0 (magari inizializzarli alla stringa vuota).

    Hai diverse istruzioni if nel tuo primo codice, quindi presumo che possa venire saltato qualche ramo (then o else) che dovrebbe inizializzare una delle posizioni di tale indice.

    Aggiungerei queste righe al costruttore:
    codice:
            tab[0][1] = "";
            tab[1][1] = "";
            tab[2][1] = "";
            tab[3][1] = "";
            tab[4][1] = "";
            tab[5][1] = "";
            tab[6][1] = "";
            tab[7][1] = "";
            tab[8][1] = "";
            tab[9][1] = "";
    Così sei sicuro che tutti gli elementi della matrice sono inizializzati e puoi usarli.


    PS: certo che non è facile seguire uno stile di programmazione che usa una nomenclatura completamente all'opposto dello standard (nomi di classi con la minuscola e metodi con la maiuscola).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    se mi esce questo errore:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
    cosa significa?
    xk ho aggiunto semplicemente il codice ma ora esce questo errore.

  8. #8
    cmq la riga spagliata è questo codice in neretto è il punto sbagliato. cmq è l'arraylist che da problemi posto pure quello.
    codice:
    int i = parabole.size();
    
    a = parabole.get(parabole.size()).getA();
    
    ArrayList:

    codice:
     ArrayList<parabolina> parabole;
        int righe, colonne;
        Object[][] tab;
        DecimalFormat df;
    
        public gestioneTabella() {
            this.colonne = 2;
            this.righe = 10;
            this.df = new DecimalFormat("#,##0.00");
            this.tab = new Object[righe][colonne];
            this.parabole = new ArrayList<parabolina>();

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Questa istruzione è errata:
    codice:
    a = parabole.get(parabole.size()).getA();
    Se parabole ha N elementi, puoi accedere solo agli elementi da 0 a [N-1].
    parabole.size() ritorna il numero N, quindi stai accedendo all'elemento N, che è fuori range perchè al massimo puoi accedere all'elemento [N-1].


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    grazie. ora esce.
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
    stessa linea di codice.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.