Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    codice:
    Object [][]data = {
        {Nome2},{Cognome2} 
                };
    Prima di tutto presta attenzione al fatto che questo codice qui è dentro il while di scansione del result-set ..... e così non ha senso. Non devi creare un Object[][] ad ogni record.
    Inoltre, sempre da quello che si vede qui, hai sì creato un array bidimensionale ma di 2 righe e 1 colonna, cioè il nome (riga 1, una sola colonna) e cognome (riga 2, una sola colonna) e .... ho la vaga sensazione che non è quello che ti serve e volevi.

    Quindi prima di partire "in quarta" con il resto, cerca di ragionare meglio sulla creazione dell'array bidimensionale. E se ti risulta scomodo, usa allora un Vector di Vector di Object, che è anche appropriato per DefaultTableModel.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Prima di tutto presta attenzione al fatto che questo codice qui è dentro il while di scansione del result-set ..... e così non ha senso. Non devi creare un Object[][] ad ogni record.
    Inoltre, sempre da quello che si vede qui, hai sì creato un array bidimensionale ma di 2 righe e 1 colonna, cioè il nome (riga 1, una sola colonna) e cognome (riga 2, una sola colonna) e .... ho la vaga sensazione che non è quello che ti serve e volevi.

    Quindi prima di partire "in quarta" con il resto, cerca di ragionare meglio sulla creazione dell'array bidimensionale. E se ti risulta scomodo, usa allora un Vector di Vector di Object, che è anche appropriato per DefaultTableModel.
    Allora inanzitutto ho capito quale il problema e che l'oggetto data si sovrascrive ogni volta, ho provato ad a mettere fuori l'oggetto data. ma niente. Come posso fare?



    codice:
        while (rs.next()) {
    
            
             
              Nome2=rs.getString("Nome");
              Cognome2=rs.getString("Cognome");
             
                  
    
    
    
    
             
             
    //Create and set up the window.
             
             
             
              
                
                 
                   
                   
                
    
           
    
          }
         
         Object [][]data = {
        {Nome2,Cognome2},
                };
         
         
                 String nomecolonna[]={"Nome","Cognome"};
    
          JTable table = new JTable(data,nomecolonna);
    
    NewJFrame frame=new NewJFrame();
    
    Container cp = frame.getContentPane();
    
    cp.setLayout(new BorderLayout());
    cp.add(table.getTableHeader(), BorderLayout.PAGE_START);
    cp.add(table, BorderLayout.CENTER);
    
    
    
    
    
    
    
    frame.setVisible(true);


    codice:
    
    while (rs.next()) {
    
            
           
              Nome2[numerorighe]=rs.getString("Nome");
              Cognome2[numerorighe]=rs.getString("Cognome");
             
    numerorighe++;
    
    
    
             
             
    //Create and set up the window.
             
             
             
              
                
                 
                   
                   
                
    
           
    
          }
    Ho provato così ma niente
    Ultima modifica di deleted_2024.08.22; 14-04-2014 a 01:08

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    Allora inanzitutto ho capito quale il problema e che l'oggetto data si sovrascrive ogni volta, ho provato ad a mettere fuori l'oggetto data. ma niente. Come posso fare?
    Il punto è che per poter istanziare correttamente un Object[][] dovresti sapere a priori quante righe avrai nel result-set. Questo è anche possibile (es. con una query di "count" ad esempio) ma allunga un po', oltre al fatto che potrebbe non essere la soluzione migliore.

    Nel tuo caso ti conviene:
    1) Usare un List<Object[]> da cui poi ottieni alla fine un Object[][]
    oppure
    2) Usare un Vector di Vector di Object.

    Entrambe le strutture sono appropriate per JTable o direttamente per DefaultTableModel.

    I due casi con codice "abbozzato" e minimale (lo completi tu ).

    1)
    codice:
    List<Object[]> listRighe = new ArrayList<Object[]>();
    
    while (rs.next()) {
        String nome = rs.getString("Nome");
        String cognome = rs.getString("Cognome");
    
        listRighe.add(new Object[] { nome, cognome });
    }
    
    Object[][] datiTabella = listRighe.toArray(new Object[0][]);

    2)
    codice:
    Vector datiTabella = new Vector();
    
    while (rs.next()) {
        String nome = rs.getString("Nome");
        String cognome = rs.getString("Cognome");
    
        Vector riga = new Vector();
        riga.add(nome);
        riga.add(cognome);
    
        datiTabella.add(riga);
    }

    In entrambi i casi, alla fine hai 'datiTabella' con tutti i dati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il punto è che per poter istanziare correttamente un Object[][] dovresti sapere a priori quante righe avrai nel result-set. Questo è anche possibile (es. con una query di "count" ad esempio) ma allunga un po', oltre al fatto che potrebbe non essere la soluzione migliore.

    Nel tuo caso ti conviene:
    1) Usare un List<Object[]> da cui poi ottieni alla fine un Object[][]
    oppure
    2) Usare un Vector di Vector di Object.

    Entrambe le strutture sono appropriate per JTable o direttamente per DefaultTableModel.

    I due casi con codice "abbozzato" e minimale (lo completi tu ).

    1)
    codice:
    List<Object[]> listRighe = new ArrayList<Object[]>();
    
    while (rs.next()) {
        String nome = rs.getString("Nome");
        String cognome = rs.getString("Cognome");
    
        listRighe.add(new Object[] { nome, cognome });
    }
    
    Object[][] datiTabella = listRighe.toArray(new Object[0][]);

    2)
    codice:
    Vector datiTabella = new Vector();
    
    while (rs.next()) {
        String nome = rs.getString("Nome");
        String cognome = rs.getString("Cognome");
    
        Vector riga = new Vector();
        riga.add(nome);
        riga.add(cognome);
    
        datiTabella.add(riga);
    }

    In entrambi i casi, alla fine hai 'datiTabella' con tutti i dati.
    codice:
    List<Object[]> listRighe = new ArrayList<Object[]>();
    ;

    Inserendo questo pezzetto di codice mi dà errore su List,come mai?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    codice:
    List<Object[]> listRighe = new ArrayList<Object[]>();
    ;

    Inserendo questo pezzetto di codice mi dà errore su List,come mai?
    Richiede la compilazione almeno con Java 5.
    E List / ArrayList sono nel package java.util, quindi vanno importati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.