Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA - ECLIPSE] vector in JTABLE

    Ciao Ragazzi,
    ho un problema...non riesco a inserire il risultato di una query in una jtable.


    Il fatto è che ho il vector con in ogni cella un campo della tabella risultante da una query inserita dall'utente.
    Come faccio a inserire il contenuto di una cella del Vector in una cella della jtable?
    codice:
    ResultSet rs = cmd.executeQuery(qry);
    			ResultSetMetaData rsMeta = rs.getMetaData();
    			int nColonne = rsMeta.getColumnCount();
    			DefaultTableModel data = new DefaultTableModel();
    			Vector v = new Vector();
    			for (int i=1; i<=nColonne; i++) {				//assegno i nomi alle colonne del JTABLE
    				data.addColumn(rsMeta.getColumnName(i));
    			}
    			while (rs.next()) {    //riempo il vector
    				for (int i=1; i<=nColonne; i++) {	
    					v.addElement(rs.getObject(rsMeta.getColumnName(i)));
    				}
    			}
    			int r = v.size()/nColonne;
    			Enumeration e = v.elements();
    
    			for (int i=1; i<=r; i++) {
    				for (int j=1; j<=nColonne; j++){
    					data.setValueAt(e.nextElement(), i,j);
    }
    			}
    			
    			
    			
    				
    				JTable table = new JTable(data);
    				JScrollPane scroller = new JScrollPane(table);
    				JFrame tableFrame = new JFrame("Tabella Risultante");
    				
    				tableFrame.add(scroller);
    				tableFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    				tableFrame.setLocation(120,120);
    				tableFrame.pack();
    				tableFrame.setVisible(true);
    				rs.close();
    Con le varie prove che ho fatto o mi riempe la jtable solo con la stessa riga o ricevo errore (con questo codice) "Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0" riferito al codice in grassetto

    grazie

  2. #2

    Ho risolto

    Probabilmente questo forum porta bene...ho risolto!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da forza_sugar
    Probabilmente questo forum porta bene...ho risolto!!!
    Di solito quando si risolve si pubblica la soluzione, in modo che sia utile a chiunque dovesse trovarsi ad affrontare il medesimo problema in futuro: questo è lo spirito del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    soluzione!

    hai ragione...scusa ma era tardi e sono andato a dormire
    eccola:

    codice:
    			ResultSet rs = cmd.executeQuery(qry);
    			ResultSetMetaData rsMeta = rs.getMetaData();
    			int nColonne = rsMeta.getColumnCount();
    			
    			Vector nomeColonne = new Vector();
    			for (int nr=1; nr<=nColonne; nr++)
    			       nomeColonne.add(rsMeta.getColumnName(nr)); 
    			
    			Vector datiRighe = new Vector();
    			while (rs.next()){
    			       Vector riga = new Vector(); 
    			       for (int nr=1; nr<=nColonne; nr++) {
    			           riga.add(rs.getObject(nr));
    			       }
    			datiRighe.add(riga);
    			}
    
    				creaJTable(datiRighe,nomeColonne); // creo JFrame con JTable
    e qui creo il JFrame con la JTable
    codice:
    private JFrame creaJTable(Vector righe, Vector colonne) {
    		JTable table = new JTable(righe,colonne) {         //sovrascrive il metodo is CellEditable impostando la JTable
    			@Override public boolean isCellEditable(int row, int column) { // non modificabile
    				return false;
    			}
    		};
    		JScrollPane scroller = new JScrollPane(table);
    		JFrame tableFrame = new JFrame("Tabella Risultante");
    		tableFrame.add(scroller);
    		tableFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		tableFrame.setLocation(220,150);
    		tableFrame.pack();
    		tableFrame.setVisible(true);
    		return tableFrame;
    	}
    Ciao

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.