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

    Inserire dati da db a Jtable

    Salve ho creato una jtable con 4 colonne e creato una query per prendere dati da un db ,
    HO poi creato 4 array (uno per colonna valorizzati con i dati ).
    Vorrei un aiuto con l'inserimento nella tabella , allego il codice:
    codice:
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.sql.ResultSet;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.DefaultListModel;
    import javax.swing.JTable;
    import javax.swing.JSpinner;
    import javax.swing.JList;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JScrollPane;
    
    
    public class Tabelladati extends JFrame {
    	private int codice,quantita;
    	private String descrizione,locazione;
    	private JTable table;
    	private int numRighe;
    	
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Tabelladati frame = new Tabelladati("ric",11111111,"F1");
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public Tabelladati(String contesto,int codice,String locazione ) {
    		
    		this.codice=codice;
    		this.locazione=locazione;
    		setTitle("Dati");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 500, 300);
    		getContentPane().setLayout(null);
    		
    		JList lista = new JList();
    		lista.setBounds(8, 552, 480, 200);
    		getContentPane().add(lista);
    		
    		
    		JScrollPane scrollPane = new JScrollPane();
    		scrollPane.setBounds(29, 22, 420, 207);
    		getContentPane().add(scrollPane);
    		
    		table = new JTable();
    		scrollPane.setViewportView(table);
    		
    		
    		
    		// Dopo aver inserito il codice o la locazione nel jframe ricerca
    		if (contesto=="ric"){
    			// mi connetto al db e inserisco i dati nel jlist
    			try{
    	        	ConnettiDb myDb = new ConnettiDb("localhost","Gestionale","root","root");
    	            ResultSet rst = myDb.query("select * from materiale where Codice='"+codice+"' or Locazione='"+locazione+"';");
    	        
    	            // recupera il numero di righe del RestultSet
    	            rst.last();
    	            numRighe = rst.getRow();
    	            System.out.println(numRighe);//per controllare se ci sono dati
    	            
    	            // riposiziona il cursore di ResultSet all'inizio
    	            rst.first();
    				
    	            // definisce un TableModel implementa il metodo .addElement()
    	            DefaultTableModel tablemodel = new DefaultTableModel();
    	      		table.setModel(tablemodel);
    	      		tablemodel.addColumn("Codice");
    	      		tablemodel.addColumn("Descrizione");
    	      		tablemodel.addColumn("Quantità");
    	      		tablemodel.addColumn("Locazione");
    	      		tablemodel.setRowCount(tablemodel.getRowCount() + (numRighe+1));
    	           
    	            // scorre il ResultSet
    		
    	      		if(numRighe>0){
    	     
    		            // Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
    		           
    		        	int    [] cod = new int[numRighe];
    		        	String [] des = new String[numRighe];
    		            String [] loc = new String[numRighe];
    		            int    [] qua = new int[numRighe];
    		         	
    		        	do{
    			        	for(int i=1 int ;i<=numRighe ;i++ ){
    				        	cod[i]=  rst.getInt("codice");
    				            des[i] = rst.getString("descrizione");
    				            loc[i] = rst.getString("locazione");
    				            qua[i] = rst.getInt("Quantità");
    				            modelsetvalue(cod[i],1,i); /*
    				            modelsetvalue(des[i],2,i);       NON FUNZIONA
    				            modelsetvalue(loc[i],3,i);  
    				            modelsetvalue(qua[i],4,i); */
    			        	}
    		        	}while(rst.next());
    		            
    	               //devo inserire gli array dati  nel Jtable
    	        
    		        }
    			}catch(Exception e){
    	        		e.printStackTrace();
    	      	}
    		
    		
    		
    		}     
    	}
    }

  2. #2
    cos'è modelsetvalue ?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Hai ragioner quello è un errore ora ho corretto e però viene caricato solo il l'ultimo record ripetuto su tutte le righe ...

    codice:
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.sql.ResultSet;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.DefaultListModel;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JScrollPane;
    
    
    public class Tabelladati extends JFrame {
    	private int codice,quantita;
    	private String descrizione,locazione;
    	private JTable table;
    	private int numRighe;
    	
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Tabelladati frame = new Tabelladati("ric",11111111,"F1");
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public Tabelladati(String contesto,int codice,String locazione ) {
    		
    		this.codice=codice;
    		this.locazione=locazione;
    		setTitle("Dati");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 500, 300);
    		getContentPane().setLayout(null);
    		
    		
    		JScrollPane scrollPane = new JScrollPane();
    		scrollPane.setBounds(29, 22, 420, 207);
    		getContentPane().add(scrollPane);
    		
    		table = new JTable();
    		scrollPane.setViewportView(table);
    		
    		
    		
    		// Dopo aver inserito il codice o la locazione nel jframe ricerca
    		if (contesto=="ric"){
    			// mi connetto al db e inserisco i dati nel jlist
    			try{
    	        	ConnettiDb myDb = new ConnettiDb("localhost","Gestionale","root","root");
    	            ResultSet rst = myDb.query("select * from materiale  order by Codice");
    	            System.out.println("select * from materiale where Codice='"+codice+"' and Locazione='"+locazione+"';");
    	            // recupera il numero di righe del RestultSet
    	            rst.last();
    	            numRighe = rst.getRow();
    	            System.out.println(numRighe);//controllo se ci sono dati
    	            
    	            // riposiziona il cursore di ResultSet all'inizio
    	            rst.first();
    				
    	            // definisce un TableModel implementa il metodo .addElement()
    	            DefaultTableModel tablemodel = new DefaultTableModel();
    	      		table.setModel(tablemodel);
    	      		tablemodel.addColumn("Codice");
    	      		tablemodel.addColumn("Descrizione");
    	      		tablemodel.addColumn("Locazione");
    	      		tablemodel.addColumn("Quantità");
    	      		tablemodel.setRowCount(tablemodel.getRowCount() + numRighe);
    	           
    	            // scorre il ResultSet
    		
    	      		if(numRighe>0){	      			
    	      			
    	      			//creo tanti array quante colonne ho
    		           
    		        	int    [] cod = new int[numRighe];
    		        	String [] des = new String[numRighe];
    		            String [] loc = new String[numRighe];
    		            int    [] qua = new int[numRighe];
    		           
    		            // Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
    		            
    		        	
    			      do{
    			        	for(int i=0  ;i<numRighe ;i++ ){
    			        		
    			        		cod[i] = rst.getInt("codice");
    				            des[i] = rst.getString("descrizione");
    				            loc[i] = rst.getString("locazione");
    				            qua[i] = rst.getInt("Quantità");
    					          System.out.println("cod["+i+"]:"+cod[i]); //  Prove
    					          System.out.println("des["+i+"]:"+des[i]); //  per vedere 
    					          System.out.println("loc["+i+"]:"+loc[i]); //  se gli array 
    					          System.out.println("qua["+i+"]:"+qua[i]); //  si caricano
    					            
    					        //passo i valori alle celle    
    					        // cioe ho la riga i, alla cella riga i colonna  "Codice" passo cod[i]
    					        // alla cella riga i colonna  "descrizione" passo des[i]
    					        // e cosi via (codice da implementare)
    					            
    				            tablemodel.setValueAt(cod[i], i, 0);
    				            tablemodel.setValueAt(des[i], i, 1);				           
    				            tablemodel.setValueAt(loc[i], i, 2);
    				            tablemodel.setValueAt(qua[i], i, 3);
    			        		
    				         }
    			        	 }while(rst.next());
    			       
    	               //devo inserire gli array dati  nel Jtable
    	        
    		        }
    			}catch(Exception e){
    	        		e.printStackTrace();
    	      	}
    		
    		
    		
    		}     
    	}
    }

  4. #4
    I valori che ti fai stampare sono corretti?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  5. #5
    Risolto :

    codice:
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.sql.ResultSet;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.DefaultListModel;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JScrollPane;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    
    
    public class Tabelladati extends JFrame {
    	private int codice,quantita;
    	private String descrizione,locazione;
    	private JTable table;
    	private int numRighe;
    	
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Tabelladati frame = new Tabelladati("ric",11111111,"F1");
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public Tabelladati(String contesto,int codice,String locazione ) {
    		
    		this.codice=codice;
    		this.locazione=locazione;
    		setTitle("Dati");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 614, 556);
    		getContentPane().setLayout(null);
    		
    		
    		JScrollPane scrollPane = new JScrollPane();
    		scrollPane.setBounds(29, 22, 571, 356);
    		getContentPane().add(scrollPane);
    		
    		table = new JTable();
    		scrollPane.setViewportView(table);
    		
    		JButton btnNewButton = new JButton("Torna al pannello principale");
    		btnNewButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				Tabelladati.this.dispose();
    				
    			}
    		});
    		btnNewButton.setBounds(330, 446, 211, 25);
    		getContentPane().add(btnNewButton);
    		
    		
    		
    		// Dopo aver inserito il codice o la locazione nel jframe ricerca
    		if (contesto=="ric"){
    			// mi connetto al db e inserisco i dati nel jlist
    			try{
    	        	ConnettiDb myDb = new ConnettiDb("localhost","Gestionale","root","root");
    	            ResultSet rst = myDb.query("select * from materiale where Codice='"+codice+"' or Locazione='"+locazione+"';");
    	            
    	            // recupera il numero di righe del RestultSet
    	            rst.last();
    	            numRighe = rst.getRow();
    	            System.out.println(numRighe);//controllo se ci sono dati
    	            
    	            // riposiziona il cursore di ResultSet all'inizio
    	            rst.first();
    				
    	            // definisce un TableModel implementa il metodo .addElement()
    	            DefaultTableModel tablemodel = new DefaultTableModel();
    	      		table.setModel(tablemodel);
    	      		tablemodel.addColumn("Codice");
    	      		tablemodel.addColumn("Descrizione");
    	      		tablemodel.addColumn("Locazione");
    	      		tablemodel.addColumn("Quantità");
    	      		tablemodel.setRowCount(tablemodel.getRowCount() + numRighe); //inserisco tante righe quante ne ho nel resulset
    	           
    	            // scorre il ResultSet
    		
    	      		if(numRighe>0){	      			
    	      			
    	      			//creo tanti array quante colonne ho
    		           
    		        	int    [] cod = new int[numRighe];
    		        	String [] des = new String[numRighe];
    		            String [] loc = new String[numRighe];
    		            int    [] qua = new int[numRighe];
    		           
    		            // Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
    		            
    		            
    			        	for(int i=0  ;i<numRighe ;i++ ){
    			        		
    			        		cod[i] = rst.getInt("codice");
    				            des[i] = rst.getString("descrizione");
    				            loc[i] = rst.getString("locazione");
    				            qua[i] = rst.getInt("Quantità");
    					      /*    System.out.println("cod["+i+"]:"+cod[i]); //  Prove
    					          System.out.println("des["+i+"]:"+des[i]); //  per vedere 
    					          System.out.println("loc["+i+"]:"+loc[i]); //  se gli array 
    					          System.out.println("qua["+i+"]:"+qua[i]); //  si caricano
    					      */
    				            
    				            
    					        //passo i valori alle celle    
    					        // cioe ho la riga i, alla cella riga i colonna  "Codice" passo cod[i]
    					        // alla cella riga i colonna  "descrizione" passo des[i]
    					        // e cosi via (codice da implementare)
    					            
    				            tablemodel.setValueAt(cod[i], i, 0);  
    				            tablemodel.setValueAt(des[i], i, 1);   	        
    				            tablemodel.setValueAt(loc[i], i, 2);      
    				            tablemodel.setValueAt(qua[i], i, 3);    
    				            rst.next();
    				         }
    			        	
    		        	
    			       
    	               //devo inserire gli array dati  nel Jtable
    	        
    		        }
    			}catch(Exception e){
    	        		e.printStackTrace();
    	      	}
    		
    		
    		
    		}     
    	
    	// Dopo aver inserito il codice o la locazione nel jframe ricerca
    			if (contesto=="vis"){
    				// mi connetto al db e inserisco i dati nel jlist
    				try{
    		        	ConnettiDb myDb = new ConnettiDb("localhost","Gestionale","root","root");
    		            ResultSet rst = myDb.query("select * from materiale order by Codice ;");
    		            
    		            // recupera il numero di righe del RestultSet
    		            rst.last();
    		            numRighe = rst.getRow();
    		            System.out.println(numRighe);//controllo se ci sono dati
    		            
    		            // riposiziona il cursore di ResultSet all'inizio
    		            rst.first();
    					
    		            // definisce un TableModel implementa il metodo .addElement()
    		            DefaultTableModel tablemodel = new DefaultTableModel();
    		      		table.setModel(tablemodel);
    		      		tablemodel.addColumn("Codice");
    		      		tablemodel.addColumn("Descrizione");
    		      		tablemodel.addColumn("Locazione");
    		      		tablemodel.addColumn("Quantità");
    		      		tablemodel.setRowCount(tablemodel.getRowCount() + numRighe);
    		           
    		            // scorre il ResultSet
    			
    		      		if(numRighe>0){	      			
    		      			
    		      			//creo tanti array quante colonne ho
    			           
    			        	int    [] cod = new int[numRighe];
    			        	String [] des = new String[numRighe];
    			            String [] loc = new String[numRighe];
    			            int    [] qua = new int[numRighe];
    			           
    			            // Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
    			            
    			            
    				        	for(int i=0  ;i<numRighe ;i++ ){
    				        		
    				        		cod[i] = rst.getInt("codice");
    					            des[i] = rst.getString("descrizione");
    					            loc[i] = rst.getString("locazione");
    					            qua[i] = rst.getInt("Quantità");
    						      /*    System.out.println("cod["+i+"]:"+cod[i]); //  Prove
    						          System.out.println("des["+i+"]:"+des[i]); //  per vedere 
    						          System.out.println("loc["+i+"]:"+loc[i]); //  se gli array 
    						          System.out.println("qua["+i+"]:"+qua[i]); //  si caricano
    						      */
    					            
    					            
    						        //passo i valori alle celle    
    						        // cioe ho la riga i, alla cella riga i colonna  "Codice" passo cod[i]
    						        // alla cella riga i colonna  "descrizione" passo des[i]
    						        // e cosi via (codice da implementare)
    						            
    					            tablemodel.setValueAt(cod[i], i, 0);  
    					            tablemodel.setValueAt(des[i], i, 1);   	        
    					            tablemodel.setValueAt(loc[i], i, 2);      
    					            tablemodel.setValueAt(qua[i], i, 3);    
    					            rst.next();
    					         }
    				        	
    			        	
    				       
    		               //devo inserire gli array dati  nel Jtable
    		        
    			        }
    				}catch(Exception e){
    		        		e.printStackTrace();
    		      	}
    			
    			
    			
    			}     
    		}
    }

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.