Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    problema col validate()

    ciao ragazzi io ho due metodi più o meno simili in pratica salvano in un Jtable implementato con un AbstractTableModel, dei dati presenti in un database e alla fine con il
    codice:
    this.validate()
    mi ordina tutto e mi funziona tranquillamente...
    mentre il secondo metodo, ho notato che questa istruzione nn ha nessuna efficacia, sapreste indicarmi come sostituirlo?


    grazie
    quando il diavolo ti accarezza è perchè vuole la tua anima

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A cosa si riferisce il this? Fa riferimento allo stesso contenitore in entrambi i casi?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    this al frame principale
    quando il diavolo ti accarezza è perchè vuole la tua anima

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se compi le operazioni di aggiornamento tramite il metodo in cui validate sembra non sortire effetto e poi minimizzi e massimizzi la finestra dell'applicazione, la JTable viene ridisegnata?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    quando minimizzo e massimizzo,la pagina è nulla, ma se passo col mouse si rivisualizzano
    mentre la tabella sono se clicco su un punto a caso visualizzo,
    quando il diavolo ti accarezza è perchè vuole la tua anima

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    capito io forse non ho! Non potevi scrivere lasciando a casa il dizionario di Yodese? Allora vediamo

    - minimizzando e ri-massimizzando, la cosa resta invisibile
    - passando col mouse sopra la finestra, la cosa si visualizza (serve prima fare il trucchetto min-max di cui sopra oppure si visualizza lo stesso?)
    - l'ultima riga non l'ho capita.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    in pratica io ho una tabella con delle tuple, come in allegato


    e questo è il suo codice:



    codice:
    public Record[] web(int ris2)  
        { 
         /*  GridBagConstraints c = new GridBagConstraints();
    //coordinate directory       
           if (ris2==1){
           c.gridy=1;
           c.fill = GridBagConstraints.BOTH;
           }
    //coordinate singola pagina
           else {
            c.gridx=0;
            c.gridy=0;
            c.fill = GridBagConstraints.HORIZONTAL;
                }c.weighty = 0.2;*/
            try{ 
            final tabellaPagina tb = new tabellaPagina("");
                   
    //questo controllo verifica se è stato scelto un singolo file o una directory
           
    //identificazione singola pagina        
            if (ris2 == 0) {t=1;
            Record[] rr = new Record[t];//record che richiama i dati dal database
            rr = tb.run(nomefile);//in tb.run(nomefile) ci sono i valori del database
            final Record [] r = new Record[t];//record per la visualizzazione nella tabella
            r[0] = new Record(); 
            r[0].setSelezionato(true); //seleziona il flag
            r[0].setNome(rr[0].getNome()); //seleziona il nome del file
            r[0].setNomeFile(rr[0].getNomeFile()); //seleziona il nome della pagina web
            r[0].setPath(rr[0].getPath());//seleziona la directory in cui si trova il file
            r[0].setNumero(rr[0].getNumero());//conta il numero di file in quella directory
            r[0].setCodice(rr[0].getCodice());//visualizza il codice
            r[0].setData(rr[0].getData());//visualizza la data di estrazione
            
            Object[][] data2 = new Object[r.length][];
    //questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
            for (int  i = 0; i < r.length; i++)
            {
                data2[i] = r[i].getObjects ();
            }
            
           MyTableModel my = new MyTableModel();
           my.MyTable(data2);
           final JTable tab = new JTable(my);
           p_job.add(tab);
           rr2 =rr;
            TableColumn column = null;
            column = tab.getColumnModel().getColumn(5);
            my.setUpSportColumn(tab,column);
            tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
            tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
            JScrollPane scroll = new JScrollPane(tab); 
            p_job.add(scroll);
            tab.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                      TabellaScript ts = new TabellaScript();
                      int selectedrow = tab.getSelectedRow();
                      int[] selected = tab.getSelectedColumns();
                      String prima = r[selectedrow].getPath();
                         String tupla = r[selectedrow].getPath() +"\\"+ r[selectedrow].getNomeFile();
                               for (int i = 0; i < selected.length; i++) {
                            if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                       try{
                            JFrame f = new JFrame();
                            JPanel p = new JPanel();
                            tabellaPagina tb = new tabellaPagina("");
                            
                            int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                            //stampa il rispettivo codice 
                            JTextArea t = new JTextArea(rr2[0].getCodice(),30,35);
                            JScrollPane s = new  JScrollPane(t);
                            f.setTitle("codice");
                            f.getContentPane().add(s);
                            f.setSize(400,440);
                            f.setLocation(470, 250); 
                            f.setVisible(true);
                       }
                      catch (IllegalArgumentException ee) {}
                      catch (ArrayIndexOutOfBoundsException e1) {}
                      catch (NullPointerException e2) {}     
                                                        }
                            else{
                              
                                web2(0,tupla);}
                  }
                  } });
     }  
     if (ris2 == 1) { 
             int i=0;
             tb.run(nomefile);  //1.
             t=tb.numeroFile(); //2.queste due istruzioni servono per ricevere il numero di file presenti nella cartella   
             Record[] rr = new Record[t];
             rr = null;
             rr = tb.run(nomefile);
            final  Record [] r = new Record[t];
             while (i!=t){
            r[i] = new Record(); 
            r[i].setSelezionato(true); //seleziona il flag
            r[i].setNome(rr[i].getNome()); //seleziona il nome del file
            r[i].setNomeFile(rr[i].getNomeFile()); //seleziona il nome della pagina web
            r[i].setPath(rr[i].getPath());//seleziona la directory in cui si trova il file
            r[i].setNumero(rr[i].getNumero());//conta il numero di file in quella directory
            r[i].setCodice(rr[i].getCodice());//visualizza il codice
            r[i].setData(rr[i].getData());//visualizza la data di estrazione
            i++; 
            }
            Object[][] data = new Object[r.length][];
    //questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
            for ( i = 0; i < r.length; i++)
            {
                data[i] = r[i].getObjects ();
            }
            
           MyTableModel my = new MyTableModel();
           my.MyTable(data);
           final JTable tab = new JTable(my);
                    p_job.add(tab);
                    rr2 =rr;
                    TableColumn column = null;
                    column = tab.getColumnModel().getColumn(5);
                    my.setUpSportColumn(tab,column);
                    tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                    tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
                    tab.addMouseListener(new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                        TabellaScript ts = new TabellaScript();      
                        int[] selected = tab.getSelectedColumns();
                              int selectedrow = tab.getSelectedRow();
                              String prima = r[selectedrow].getPath();
                              
                              String tupla = r[selectedrow].getPath() +"\\"+ r[selectedrow].getNomeFile();
                               
                              for (int i = 0; i < selected.length; i++) {
                                    if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                                 try{
                                    JFrame f = new JFrame();
                                    JPanel p = new JPanel();
                                    tabellaPagina tb = new tabellaPagina("");
                                    int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                                    n_cod=selectedrow;
                                    JTextArea t = new JTextArea(rr2[n_cod].getCodice(),30,35); //stampa il rispettivo codice 
                                    JScrollPane s = new  JScrollPane(t);
                                    f.setTitle("codice");
                                    f.getContentPane().add(s);
                                    f.setSize(400,440);
                                    f.setLocation(470, 250); 
                                    f.setVisible(true); 
                                     
                                }
                              catch (IllegalArgumentException ee) {}
                              catch (ArrayIndexOutOfBoundsException e1) {}
                              catch (NullPointerException e2) {}     
                                                                }
                                    else{                                
                                       web2(1, tupla); 
                                        }
                          }
                          } });
            JScrollPane scroll = new JScrollPane(tab); 
            p_job.add(scroll);
            
           
      } 
      }     catch (SQLException ex) {}
            catch (ParserConfigurationException ex) {}
            catch (ClassNotFoundException ex) {} 
            catch (SAXException ex) {} 
            catch (IOException ex) {}
            catch (NullPointerException e){}    
            catch (ArrayIndexOutOfBoundsException e){}
            this.validate();  
                
         return rr2;
    }
    mentre al rigo rosso, se clicco sulla tupla rispettiva (il parametro "tupla" mi serve x indicare che rigo è stato cliccato), richiama il metodo che non mi funziona
    Immagini allegate Immagini allegate
    quando il diavolo ti accarezza è perchè vuole la tua anima

  8. #8
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    mentre questo metodo è quello che non funziona

    codice:
    public void web2(int ris2, String tupla)  
        { 
        try{ 
        final TabellaScript tb =new TabellaScript();      
        int i=0;        
    //questo controllo verifica se è stato scelto un singolo file o una directory
           
    //identificazione singola pagina        
            if (ris2 == 0) { 
            i=0; 
            tb.run(nomefile, tupla);
            t=tb.total();
            Record[] rr = new Record[t]; 
             final  Record[] r = new Record[t];
            rr=null;
            rr = tb.run(nomefile, tupla);  //gli dico che è la prima volta con il true e ris3 il rigo scelto         
           
               
            while (i!=t){ 
            r[i] = new Record(); 
            r[i].setSelezionato(true); //seleziona il flag
            r[i].setNome(rr[i].getNome()); //seleziona il nome del file
            r[i].setTipo(rr[i].getTipo()); //seleziona il nome della pagina web
            r[i].setScopo(rr[i].getScopo());//seleziona la directory in cui si trova il file
            r[i].setData(rr[i].getData());//visualizza la data di estrazione
            r[i].setProve(rr[i].getProve());
            r[i].setClsv(rr[i].getClsv());
            r[i].setFreq(rr[i].getFreq());
            r[i].setCodice2(rr[i].getCodice2());//visualizza il codice
            i++;}
            Object[][] data2 = new Object[r.length][];
    //questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
            for ( i = 0; i < r.length; i++)
            {
                data2[i] = r[i].getObjects_script ();
            }
            
           MyTableModel my = new MyTableModel();
           my.MyTable_script(data2);
            
            
           final JTable tab = new JTable(my);
           
           p_job2.add(tab);
           //rr2 =rr;
          //  TableColumn column = null;
          //  column = tab.getColumnModel().getColumn(5);
          //  my.setUpSportColumn(tab,column);
          //  tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
          //  tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
            JScrollPane scroll = new JScrollPane(tab); 
            p_job2.add(scroll);
            
            tab.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                      int[] selected = tab.getSelectedColumns();
                      for (int i = 0; i < selected.length; i++) {
                            if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                       try{
                            JFrame f = new JFrame();
                            JPanel p = new JPanel();
                            tabellaPagina tb = new tabellaPagina("");
                            int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                            //stampa il rispettivo codice 
                            JTextArea t = new JTextArea(rr2[0].getCodice(),30,35);
                            JScrollPane s = new  JScrollPane(t);
                            f.setTitle("codice");
                            f.getContentPane().add(s);
                            f.setSize(400,440);
                            f.setLocation(470, 250); 
         
                       }
                      catch (IllegalArgumentException ee) {}
                      catch (ArrayIndexOutOfBoundsException e1) {}
                      catch (NullPointerException e2) {}     
                                                        }
                  }
                  } });
     }  
     if (ris2 == 1) { 
            i=0; 
            tb.run(nomefile, tupla);
            t=tb.total();
            Record[] rr = new Record[t]; 
            rr=null;
            rr = tb.run(nomefile, tupla);  //gli dico che è la prima volta con il true e ris3 il rigo scelto         
            final  Record[] r = new Record[t];
           
            while (i != t){
            r[i] = new Record(); 
            r[i].setSelezionato(true); //seleziona il flag
            r[i].setNome(rr[i].getNome()); //seleziona il nome del file
            r[i].setTipo(rr[i].getTipo()); //seleziona il nome della pagina web
            r[i].setScopo(rr[i].getScopo());//seleziona la directory in cui si trova il file
            r[i].setData(rr[i].getData());//visualizza la data di estrazione
            r[i].setProve(rr[i].getProve());
            r[i].setClsv(rr[i].getClsv());
            r[i].setFreq(rr[i].getFreq());
            r[i].setCodice2(rr[i].getCodice2());//visualizza il codice
            i++; 
              }
            Object[][] data2 = new Object[r.length][];
    //questo ciclo for mi permette di passargli le tuple che ho configurato nella classe Record metodo getObject()
            for ( i = 0; i < r.length; i++)
            {
                data2[i] = r[i].getObjects_script ();
            }
           
             MyTableModel my = new MyTableModel();
             my.MyTable_script(data2);
             final  JTable tab = new JTable(my);
             p_job2.removeAll();
             p_job2.add(tab);  
             tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                    tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
                  TableColumn column = null;
                  column = tab.getColumnModel().getColumn(6);
                  my.setUpSportColumn(tab,column);
                   tab.setCellSelectionEnabled(true);//abilita solo la cella selezionata
                    tab.setColumnSelectionAllowed(true);//elimina la selezione sulla tupla
              JScrollPane scroll = new JScrollPane(tab); 
              p_job2.add(scroll);
              rr2 =rr;
              tab.addMouseListener(new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                              int[] selected = tab.getSelectedColumns();
                              int selectedrow = tab.getSelectedRow();
                              //boolean isSelected = false;
                              for (int i = 0; i < selected.length; i++) {
                                    if (selected[i] == 5) {//viene attivato solo per la sesta colonna
                                    //isSelected = true;
                                try{
                                    JFrame f = new JFrame();
                                    tabellaPagina tb = new tabellaPagina("");
                                    int count=1, n_cod=0;//salvo in n_cod il rigo selezionato
                                    n_cod=selectedrow;
                                    JTextArea t = new JTextArea(rr2[n_cod].getCodice(),30,35); //stampa il rispettivo codice 
                                    JScrollPane s = new  JScrollPane(t);
                                    f.setTitle("codice");
                                    f.getContentPane().add(s);
                                    f.setSize(400,440);
                                    f.setLocation(470, 250); 
                                }
                              catch (IllegalArgumentException ee) {}
                              catch (ArrayIndexOutOfBoundsException e1) {}
                              catch (NullPointerException e2) {}     
                                                                }
                          }
                          } });
           
            
           
      } 
      } catch (SQLException ex) {}
        catch (ClassNotFoundException ex) {} 
        catch (SAXException ex) {} 
        catch (IOException ex) {}
        catch (NullPointerException e){}    
        catch (ArrayIndexOutOfBoundsException e){}
        p_job2.validate(); 
        
       
    }
    e la parte in rosso è il codice che mi interessa...e che mi dà problemi
    quando il diavolo ti accarezza è perchè vuole la tua anima

  9. #9
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    -allora se minimizzo e rimassimizzo solo la tabella che mi interessa nn si vede..

    -al rigo che non hai capito, in pratica la tabella viene visualizzata solo se clicco nella zona del pannello dove dovrebbe uscire la tabella...
    e in più mi esce come errore:

    codice:
    ompile:
    run:
    java.lang.NullPointerException
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 15
            at MyTableModel.getValueAt(MyTableModel.java:82)
            at javax.swing.JTable.getValueAt(JTable.java:1852)
    quando il diavolo ti accarezza è perchè vuole la tua anima

  10. #10
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    è più o meno chiaro?
    quando il diavolo ti accarezza è perchè vuole la tua anima

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.