Salve  tutti ragazzi,
ho creato un piccolo database e l'ho importato in java.
Fin qui tutto ok, ho creato una piccola Query sul database e salvato il risultato in un vettore "v". Ho implementato velocemente un piccolo ciclo per vedere se il vettore v era pieno oppure vuoto invece il vettore v viene inizializzato correttamente con tutti i campi presenti nel database.
Adesso però vorrei che questi campi vengano visualizzato all'interno di una JTable in java. E' possibile fare ciò??
Vi posto il codice delle due classi:
CLASSE AllFrameDesktopContainer.JAVA
	
	
	
		
Questa invece è la classe relativa alla gesitone del database.
	
	
	
		
Mi potete dare un aiutinooo.
Grazie fin da ora per le vostre risposte
				
			ho creato un piccolo database e l'ho importato in java.
Fin qui tutto ok, ho creato una piccola Query sul database e salvato il risultato in un vettore "v". Ho implementato velocemente un piccolo ciclo per vedere se il vettore v era pieno oppure vuoto invece il vettore v viene inizializzato correttamente con tutti i campi presenti nel database.
Adesso però vorrei che questi campi vengano visualizzato all'interno di una JTable in java. E' possibile fare ciò??
Vi posto il codice delle due classi:
CLASSE AllFrameDesktopContainer.JAVA
		Codice:
	
	import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
public class AllFrameDesktopContainer{
  JDesktopPane desk;
  public int i;
  JInternalFrame iframe;
  JFrame frame;
  private javax.swing.JScrollPane jScrollPane1;
  private javax.swing.JTable jTable1;
  public static void main(String[] args) {
    AllFrameDesktopContainer d = new AllFrameDesktopContainer();
 
  }
  public AllFrameDesktopContainer(){
    frame = new JFrame("IceCream 1.0");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    desk = new JDesktopPane();
    
    Database db = new Database("iceCream");
    if ( !db.connetti() ) {
       System.out.println("Errore durante la connessione al database :(");
       System.out.println( db.getErrore() );
       System.exit(0);
    }
    else{
    	System.out.println("Mi sono connesso");
    }
    //eseguo una query sul database.
    
    Vector v = db.eseguiQuery( "SELECT * FROM Ingredienti;" );
 
   
 while ( i<v.size() ) {
           String[] record = (String[]) v.elementAt(i);
           System.out.println("Record numero " + (i+1) );
          for (int j=0; j<record.length; j++) {
              System.out.println( record[j] );
           }
           i++;
        }
    
    Vector<String> columnName = new Vector<String>();
    try{ 
        iframe = new JInternalFrame("Internal Frame: " , true, true, true, true);    
        iframe.setVisible(true);
        desk.add(iframe);   
    }
    catch(NumberFormatException ne){   
      System.exit(0);
    }  
    //creo il Menù Principale
    JMenuBar menubar = new JMenuBar();
    
    //creo il menù file
    JMenu count = new JMenu("File");
    count.addMenuListener(new MyAction());
    menubar.add(count);
    
    //creo il menù Exit
    JMenu exit = new JMenu("Exit");
    exit.addMenuListener(new Esci());
    menubar.add(exit);
    
    
    frame.setJMenuBar(menubar);
    frame.add(desk);
    frame.setSize(800,600);
    frame.setVisible(true);
    
    
    //adesso crero una tabella
    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();
    DefaultTableModel model = new DefaultTableModel();
    model.setDataVector(v, columnName);
    jTable1.setModel(model);
    jScrollPane1.setName("jScrollPane1");
   jTable1.setName("jTable1"); 
    jScrollPane1.setViewportView(jTable1);
 
    iframe.getContentPane().add(jScrollPane1);
    iframe.pack();
    
  }
  public class MyAction implements MenuListener{
    public void menuSelected(MenuEvent me){
      
    }
    public void menuCanceled(MenuEvent me){}
    public void menuDeselected(MenuEvent me){}
  }
  
  public class Esci implements MenuListener{
	    public void menuSelected(MenuEvent me){
	        System.exit(0);
	    }
	    public void menuCanceled(MenuEvent me){}
	    public void menuDeselected(MenuEvent me){}
	  }
}
	Questa invece è la classe relativa alla gesitone del database.
		Codice:
	
	import java.sql.*;
import java.util.Vector;
import javax.swing.JTable;
public class Database {
   private String nomeDB;       // Nome del Database a cui connettersi
   private String nomeUtente;   // Nome utente utilizzato per la connessione al Database
   private String pwdUtente;    // Password usata per la connessione al Database
   private String errore;       // Raccoglie informazioni riguardo l'ultima eccezione sollevata
   private static Connection db;       // La connessione col Database
   private boolean connesso;    // Flag che indica se la connessione è attiva o meno
   private String[][] cells = null;
   private String[] columnsName=null;
   public Database(String nomeDB) { this(nomeDB, "", ""); }
   public JTable tabella;
   public Database(String nomeDB, String nomeUtente, String pwdUtente) {
      this.nomeDB = nomeDB;
      this.nomeUtente = "root";
      this.pwdUtente = "pentathlon";
      connesso = false;
      errore = "";
   }
   // Apre la connessione con il Database
   public boolean connetti() {
      connesso = false;
      try {
         // Carico il driver JDBC per la connessione con il database MySQL
         Class.forName("com.mysql.jdbc.Driver");
         // Controllo che il nome del Database non sia nulla
         if (!nomeDB.equals("")) {
            // Controllo se il nome utente va usato o meno per la connessione
            if (nomeUtente.equals("")) {
               // La connessione non richiede nome utente e password
               db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB);
            } else {
               // La connessione richiede nome utente, controllo se necessita anche della password
               if (pwdUtente.equals("")) {
                  // La connessione non necessita di password
                  db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente);
               } else {
                  // La connessione necessita della password
                  db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
             
               }
            }
            // La connessione è avvenuta con successo
            connesso = true;
         } else {
            System.out.println("Manca il nome del database!!");
            System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\"");
            System.exit(0);
         }
      } catch (Exception e) { errore = e.getMessage(); }
      return connesso;
   }
// Esegue una query di selezione dati sul Database
   // query: una stringa che rappresenta un'istruzione SQL di tipo SELECT da eseguire
   // colonne: il numero di colonne di cui sarà composta la tupla del risultato
   // ritorna un Vector contenente tutte le tuple del risultato
   public Vector eseguiQuery(String query) {
      Vector v = null;
      String [] record;
      int colonne = 0;
      try {
         Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
         ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
         v = new Vector();
         ResultSetMetaData rsmd = rs.getMetaData();
         colonne = rsmd.getColumnCount();
         
         System.out.println(colonne);
         while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
            record = new String[colonne];
            for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
            v.add( (String[]) record.clone() );
         }
         rs.close();     // Chiudo il ResultSet
         stmt.close();   // Chiudo lo Statement
      } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
      return v;
   }
   
   
   // Esegue una query di aggiornamento sul Database
   // query: una stringa che rappresenta un'istuzione SQL di tipo UPDATE da eseguire
   // ritorna TRUE se l'esecuzione è adata a buon fine, FALSE se c'è stata un'eccezione
   public boolean eseguiAggiornamento(String query) {
      int numero = 0;
      boolean risultato = false;
      try {
         Statement stmt = db.createStatement();
         numero = stmt.executeUpdate(query);
         risultato = true;
         stmt.close();
      } catch (Exception e) {
         e.printStackTrace();
         errore = e.getMessage();
         risultato = false;
      }
      return risultato;
   }
   //metodo aggiunto da me
   public int getRowCount() {
	   
	   return cells.length;
	   }
   //metodo aggiunto da me
   public int getColumnCount() {
	   
	   return columnsName.length;
	   }
   //metodo aggiunto da me
   public Object getValueAt(int r, int c)
   {
   return (String)cells[r][c];
   }
   //metodo aggiunto da me
   public String getColumnName(int c)
   {
   return columnsName[c];
   }
   // Chiude la connessione con il Database
   public void disconnetti() {
      try {
         db.close();
         connesso = false;
      } catch (Exception e) { e.printStackTrace(); }
   }
   public boolean isConnesso() { return connesso; }   // Ritorna TRUE se la connessione con il Database è attiva
   public String getErrore() { return errore; }       // Ritorna il messaggio d'errore dell'ultima eccezione sollevata
}
	Mi potete dare un aiutinooo.
Grazie fin da ora per le vostre risposte