Io ho questa tabella, solo che ho il problema che le caselle sono modificabili e le colonne sono intercambiabili fra loro.
Ed inoltre se io voglio creare una nuova tabella mi dovrebbe sovrascrivere la vecchia, invece mi rimane visualizzata SEMPRE la prima tabella...
Inoltre mi viene lasciato uno spazio bianco in altro nel mio frame e il cursore va più in basso rispetto alla finestra....
Questo è il codice per la tabella:
codice:
pubblic void TableSQL() {     
		setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);
		///////////////////////////////////////////////
		// n° di colonne
		int columns = 6;
		// etichette colonne
		String[] labels = {"postazione", "data_ora", "udt", "articolo","lotto","quantita"};
		// larghezza colonne
		int[] widths = {60, 120, 70, 100, 80, 70};
                try {
                String driver = "net.sourceforge.jtds.jdbc.Driver";
                Class.forName(driver).newInstance();
                    } 
                catch (Exception e) {
                JOptionPane.showMessageDialog(null,"Fallito il caricamento dei driver SQL.","ERRORE CARICAMENTO DRIVER SQL",JOptionPane.ERROR_MESSAGE);
      				    }
                try {
                Connection con=null;
                String postazione=selectedItem;
                String tempo_min=data_inizio;
                String tempo_max=data_fine;
                non_partire=0;
                //DB BECHELLI Connessione col database in cui vengono specificati url, nome utente, password
                con = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/master", "sa", "sa");                        
   
                Statement select = con.createStatement();
                Statement select1=con.createStatement();
                if(postazione.equalsIgnoreCase("Tutte")){
                // Query SQL 
                String SQL_rows="SELECT count (postazione) FROM log_lavorazione_baie where data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'";
                String SQL= "SELECT * FROM log_lavorazione_baie where data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'ORDER BY data_ora DESC";
                //caricamento query SQL
                ResultSet result2=select1.executeQuery(SQL_rows);
                result2.next();
                int ris_row=result2.getInt(1);
                 if(ris_row==0){
                    JOptionPane.showMessageDialog(null,"Non è stato trovato nessun dato.\nSelezionare un nuovo intervallo e riprovare.","NESSUN DATO",JOptionPane.WARNING_MESSAGE);
                    non_partire=1;
                } 
                if(ris_row>65530){
                    JOptionPane.showMessageDialog(null,"I dati trovati sono più di 65530.\nExcel non riesce a visualizzarli interamente.\nSelezionare un intervallo minore e riprovare.","DATI MAGGIORI DI 65530",JOptionPane.WARNING_MESSAGE);
                    non_partire=1;
                } 
                // n° di righe dinamico
                rows = ris_row;
                result1 = select.executeQuery(SQL);
                }
                else{
                String SQL_rows_post="SELECT count (postazione) FROM log_lavorazione_baie where postazione='"+postazione+"' and data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'";
                String SQL_post= "SELECT * FROM log_lavorazione_baie where postazione='"+postazione+"' and data_ora>='" +tempo_min+"' and data_ora<='" +tempo_max+ "%'ORDER BY data_ora DESC";
          	//caricamento query SQL
                ResultSet result2=select1.executeQuery(SQL_rows_post);
                result2.next();
                int ris_row=result2.getInt(1);
                if(ris_row==0){
                    JOptionPane.showMessageDialog(null,"Non è stato trovato nessun dato per la postazione selezionata.\nSelezionare un nuovo intervallo e riprovare.","NESSUN DATO",JOptionPane.WARNING_MESSAGE);
                    non_partire=1;
                } 
                if(ris_row>65530){
                    JOptionPane.showMessageDialog(null,"I dati trovati per la postazione selezionata sono più di 65530.\nExcel non riesce a visualizzarli interamente.\nSelezionare un intervallo minore e riprovare.","DATI MAGGIORI DI 65530",JOptionPane.WARNING_MESSAGE);
                    non_partire=1;
                } 
                // n° di righe dinamico
                rows = ris_row;
                result1 = select.executeQuery(SQL_post);
                } }
               
                catch (Exception e) {
                e.printStackTrace();
                JOptionPane.showMessageDialog(null,"Connessione col database fallita","ERRORE CONNESSIONE DATABASE",JOptionPane.ERROR_MESSAGE);     
                                    } 
                 if(non_partire==0){
                // vettore dati tabella
		Vector data = new Vector(0, 1);
		// vettore colonne tabella
		Vector columnNames = new Vector(0, 1);
                
		// popolo la tabella
		for(int i = 0; i < rows; i++) {
           try {
                // vettore singola riga tabella
                Vector row = new Vector();
                result1.next();
                for (int j = 1; j <= columns; j++) {
                    try {
                        row.addElement(result1.getString(j));
                        pw.print(result1.getString(j)+";");
                        
                        } 
                        catch (SQLException ex) {
                                                 Logger.getLogger(ControlloLog.class.getName()).log(Level.SEVERE, null, ex);
                                                  }
                }
                data.addElement(row);
                pw.print("\n");
                 } 
                catch (SQLException ex) {
                                     Logger.getLogger(ControlloLog.class.getName()).log(Level.SEVERE, null, ex);
                                         }
		}
		// intestazioni colonne
		for(int i = 0; i < columns; i++) {
			columnNames.addElement(labels[i]);
		}
		// modello dati della tabella
		DefaultTableModel tableModel = new DefaultTableModel(data, columnNames);
		// modello attributi delle colonne
		DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
		for(int i = 0; i < columns; i++) {
			// modello attributi colonna singola
			TableColumn column = new TableColumn(i, widths[i]);
			column.setHeaderValue(labels[i]);
			columnModel.addColumn(column);
		}
		// la tabella
		JTable table = new JTable(tableModel, columnModel);
                table.setPreferredScrollableViewportSize(new Dimension(700, 600));
		JScrollPane scroll = new JScrollPane(table);
		///////////////////////////////////////////////////
		getContentPane().add(scroll);
		pack(); 
                //setVisible(true);
                DesktopPane desktop;
 desktop.add(scroll);
	}}