Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 30
  1. #11
    chiedo scusa per i post multipli,

  2. #12
    Scusa hai definito la struttura del DB?
    non ho capito qual'è il tuo problema....
    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. #13
    il mio problema è salvare tutti i dati della tabella in sqlite
    si il db l'ho creato ma dovrò modificare la tabella in quanto quella che ho fatto ha le colonne: data,ora,colonna e appuntamento, mentre se salvassi direttamente il vettore avrei bisogno solo di data e vettore

    in pratica in base al giorno selezionato dovrà caricarmi il vettore con gli appuntamenti di quel giorno e aggiornare ogni volta che scrivo un nuovo appuntamento in tebella,non so se mi sono spiegato bene

  4. #14
    Per la visualizzazione:
    Ti carichi tutti gli appuntamenti dal DB te li memorizzi in un Vector o in una LinkedList o dove ti pare.
    Quando vai a creare la tabella ti richiami la classe del DB (in quella classe ci sarà un metodo che ti memorizza come detto prima tutti gli appuntamenti) e poi con dei for te li carichi nella JTable.

    Per l'update:
    Non appena modifichi la cella fai partire un evento che fà l'update del dato stesso in tabella.

    Ciao

    P.S. ma si può creare una cosa del genere?
    codice:
    Object[]  ora1 =  {"8:00"};
    Object[]  ora2 =  {"8:15"};
    .....
    Object[]  ora48 =  {"20:00"};
    	        	     
    model.addRow(ora1);
    model.addRow(ora2);
    .....
    model.addRow(ora48);
    puoi realizzare la stessa cosa con un piccolo script invece di instanziare centinaia di oggetti...
    io sono riuscito con un solo object.
    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. #15
    che fosse un modo stupido di fare lo intuivo
    grazie per la risposta,ora ci studio un pò su

  6. #16
    mhmh l'unica cosa che mi viene in mente è utilizzare un ciclo for

    codice:
     double apertura;
    	    int chiusura=20;
    	    for (apertura=8;apertura<chiusura;apertura=apertura+0.15)
    	    { 
    	    		
    	    	System.out.println(Math.round( apertura * Math.pow( 10, 2 ) )/Math.pow( 10, 2 ));
    	    	
    	    };
    ma con l'evidente problema che non si ferma ai 60 minuti

  7. #17
    te lo passo domattina...l'ho realizzato con la classe GregorianCalendar.

    Notte

    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

  8. #18
    la parte di per la stampa degli orari nella tabella è la seguente
    codice:
    totaleorelavoro=12;
    long quindiciminuti=900000L;
    Object[] generalTime=new Object[1];  
    GregorianCalendar gcalendar = new GregorianCalendar();
    //qui di seguito puoi gestirti la data che tenti di aprire dal calendar e sostituirla al posto di //year, month and day e passare direttamente i valori interi alla funzione di gcalendar.    
    gcalendar.set(gcalendar.get(Calendar.YEAR), gcalendar.get(Calendar.MONTH)
    	                       , gcalendar.get(Calendar.DAY_OF_MONTH), 8, 0, 0);
    	
    String fmt_time= "";                                        
    for(int i=0; i<(totaleorelavoro*4)+1; i++){     
    	try{
    		fmt_time= format(gcalendar);
    	}catch(ParseException pex){
    		System.out.println("errore");
    		pex.printStackTrace();
    		System.exit(-1);
    	}	
    	generalTime[0]=fmt_time;
    	model.addRow(generalTime);	    
    	gcalendar.setTimeInMillis(gcalendar.getTimeInMillis()+quindiciminuti);	        
    
    }
    
    //il metodo format
    public String format(GregorianCalendar date) throws ParseException{
    	SimpleDateFormat sdft = new SimpleDateFormat("HH:mm");
        	sdft.setCalendar(date);
        	return sdft.format(date.getTime());
    }
    Questo è uno dei metodi da seguire ma può essere anche migliorato o fatto in un altro modo.


    inoltre non hai settato nemmeno un JScrollPane per leggere tutta la tabella.
    ho migliorato un pò la tua classe.

    codice:
    import java.sql.*;
    import java.util.Calendar;
    import java.util.Vector;
    import java.util.GregorianCalendar;
    import java.text.SimpleDateFormat;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.Border;
    import javax.swing.table.DefaultTableModel;
    import java.text.ParseException;
    
    public class ProvaTabella extends JFrame{
    	
       private JTable tabella;
       private JScrollPane pane;
       private int orainizio=8;
       private int orafine=20;
       
       private int totaleorelavoro;
    	public  ProvaTabella(){
    		
    		super("User Table");
    	       
    		DefaultTableModel model = new DefaultTableModel();
    		tabella = new JTable (model);
    	        
    	        
    		model.addColumn("    /    ");
    		model.addColumn("lavorante1");
    		model.addColumn("lavorante2");
    		model.addColumn("lavorante3");
    		model.addColumn("lavorante4");
    		model.addColumn("lavorante5");
    	        
    	    
    		totaleorelavoro=12;
    		long quindiciminuti=900000L;
    		Object[] generalTime=new Object[1];  
    		GregorianCalendar gcalendar = new GregorianCalendar();
    	           
    		gcalendar.set(gcalendar.get(Calendar.YEAR), gcalendar.get(Calendar.MONTH)
    	        	                       , gcalendar.get(Calendar.DAY_OF_MONTH), 8, 0, 0);
    	        String fmt_time= "";	                                        
    		for(int i=0; i<(totaleorelavoro*4)+1; i++){     
    			
    			try{
    				fmt_time= format(gcalendar);
    			}catch(java.text.ParseException pex){
    				System.out.println("errore");
    				pex.printStackTrace();
    				System.exit(-1);
    			}	
    			generalTime[0]=fmt_time;
    			model.addRow(generalTime);	    
    			gcalendar.setTimeInMillis(gcalendar.getTimeInMillis()+quindiciminuti);	        
    	        
    		}
    
    		pane=new JScrollPane(tabella);
    	    add(pane); 
    	    setBounds(50, 50, 500, 500);
    	    setVisible(true);
    	    
    	    model.fireTableRowsUpdated(0, model.getRowCount());
    	    CreazioneDb data1 = new CreazioneDb();
    	    Vector data = model.getDataVector();
    	    System.out.println(data);
    	    
    //	    try {
    //				
    //	           Connection conn = DriverManager.getConnection("jdbc:sqlite:gestione.db");
    //	           
    //	         PreparedStatement prep = conn.prepareStatement("INSERT INTO agenda(data) VALUES(?)");
    //	          
    //	         prep.setString(1, data);
    //	
    //	prep.execute();
    //	
    //			} catch (SQLException e1) {
    //				// TODO Auto-generated catch block
    //				e1.printStackTrace();
    //			}
    //		}
    	    
    	    
    	}
    	
    	public String format(GregorianCalendar date) throws java.text.ParseException{
    	 	SimpleDateFormat sdft = new SimpleDateFormat("HH:mm");
        	        sdft.setCalendar(date);
           	        return sdft.format(date.getTime());
        
            }
    	
    	
    	public static void main(String[] args) {
    		ProvaTabella a = new ProvaTabella();
    		a.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e){
    				System.exit(0);
    			}
    		});
    		a.setBounds(50, 50, 500, 500);
    	        a.setVisible(true);
    	}
    
    }
    a questo punto devi occuparti sulla parte di caricamento tabella da DB e eventi JTable, ma prima di tutto devi crearti la tabella sul tuo DB.

    Ciao
    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

  9. #19
    grazie
    domani provo e guardo bene come fatto
    non ci avevo proprio pensato alla classe calendar

  10. #20
    funziona perfettamente e riesco a salvare i dati,devo studiare il modo per far sentire la modifica delle celle ed è a posto,però ho un problema,quando vado ad integrare il codice della tabella nel mio programmino mi da errore(ovviamente rinomino le varie parti)



    codice:
    //creo il pannello di AGENDA--------------------------------------------------------------
    	      final JPanel mfagenda  = new JPanel ();
    	      mfagenda.add(calendario);
    	     
    	      
    	      //-------------------------------
    	      //parte della tabella dell'agenda
    	      //-------------------------------
    	      
    	       JTable tabellaag;
    	       JScrollPane pane;
    	       int orainizio=8;
    	       int orafine=20;
    	      int totaleorelavoro;
    	      
    	      DefaultTableModel agmodel = new DefaultTableModel();
    	      tabellaag = new JTable (agmodel);
    	      
    	      agmodel.addColumn("    /    ");
    	      agmodel.addColumn("lavorante1");
    	      agmodel.addColumn("lavorante2");
    	      agmodel.addColumn("lavorante3");
    	      agmodel.addColumn("lavorante4");
    	      agmodel.addColumn("lavorante5");
    	      
    	      
    	      totaleorelavoro=12;
    			long quindiciminuti=900000L;
    			Object[] generalTime=new Object[1];  
    			
    			GregorianCalendar gcalendar = new GregorianCalendar();
    	//qui di seguito puoi gestirti la data che tenti di aprire dal calendar e sostituirla 
    	//al posto di //year, month and day e passare direttamente i valori interi alla funzione di gcalendar.    
    			gcalendar.set(gcalendar.get(Calendar.YEAR), gcalendar.get(Calendar.MONTH)
    		        	                       , gcalendar.get(Calendar.DAY_OF_MONTH), 8, 0, 0);
    		        String fmt_time= "";	                                        
    			for(int i=0; i<(totaleorelavoro*4)+1; i++){     
    				
    				try{
    					fmt_time= format(gcalendar);
    				}catch(java.text.ParseException pex){
    					System.out.println("errore");
    					pex.printStackTrace();
    					System.exit(-1);
    				}	
    				generalTime[0]=fmt_time;
    				agmodel.addRow(generalTime);	    
    				gcalendar.setTimeInMillis(gcalendar.getTimeInMillis()+quindiciminuti);	        
    		        
    			}
    			
    					
    						
    						pane=new JScrollPane(tabellaag);
    					    agmodel.fireTableRowsUpdated(0, agmodel.getRowCount());
    					    Vector data = agmodel.getDataVector();
    					    String vettore = data.toString();
    					    
    					    agmodel.fireTableRowsUpdated(0, agmodel.getRowCount());
    					    System.out.println(vettore);
    //					    try {
    //							
    //					           Connection conn = DriverManager.getConnection("jdbc:sqlite:agenda.db");
    //					           
    //					         PreparedStatement prep = conn.prepareStatement("INSERT INTO agenda(data) VALUES(?);");
    //					          
    //					         prep.setString(1,vettore);
    //					
    //					prep.execute();
    //					
    //							} catch (SQLException e1) {
    //								// TODO Auto-generated catch block
    //								e1.printStackTrace();
    //							}
    					    String format(GregorianCalendar date) throws java.text.ParseException{
    						 	SimpleDateFormat sdft = new SimpleDateFormat("HH:mm");
    					    	        sdft.setCalendar(date);
    					       	        return sdft.format(date.getTime());
    					    
    					        }
    	      
    	      //------------------------------
    	      //fine parte tabella agenda
    	      //-----------------------------
    					    pane.setBounds(10, 10, 500, 500);
    	      
    					    
    					      
    					      final JSplitPane AGENDA = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,pane, mfagenda);
    					      
    					      AGENDA.setOneTouchExpandable(false);
    					      AGENDA.setOpaque(true);
    					      AGENDA.setDividerLocation(500);

    la riga incriminata è questa :

    codice:
    String format(GregorianCalendar date) throws java.text.ParseException{
    gli errori:
    Multiple markers at this line
    - Syntax error, insert ";" to complete Statement
    - Syntax error, insert "AssignmentOperator Expression" to complete
    Assignment
    - Syntax error, insert ";" to complete LocalVariableDeclarationStatement
    - Syntax error on token "(", ; expected


    ho inoltre provato a "sentire" le modifiche tramite:
    codice:
     agmodel.fireTableRowsUpdated(0, agmodel.getRowCount());
    ma non da segni di vita

    questa è la classe tablemodel:

    codice:
    import javax.swing.JTable;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    //sente tutto quello ke si fa sulla cella e capisce quale azione è stata svolta
    
    public class MyTableModel implements TableModelListener{
    
    		  JTable table;
    		  
    		  MyTableModel(JTable table) {
    		    this.table = table;
    		    table.setRowSelectionAllowed(false);
    		    table.setColumnSelectionAllowed(false);
    		    table.setCellSelectionEnabled(false);
    		    
    		  }
    
    		  public void tableChanged(TableModelEvent e) {
    		    int firstRow = e.getFirstRow();
    		    int lastRow = e.getLastRow();
    		    int index = e.getColumn();
    
    		    switch (e.getType()) {
    		    case TableModelEvent.INSERT:
    		      for (int i = firstRow; i <= lastRow; i++) {
    		        System.out.println("inserito");
    		        
    		      }
    		      break;
    		    case TableModelEvent.UPDATE:
    		      if (firstRow == TableModelEvent.HEADER_ROW) {
    		        if (index == TableModelEvent.ALL_COLUMNS) {
    		          System.out.println("A column was added");
    		        } else {
    		        	System.out.println("aggiornata");
    		        	System.out.println(index + "in header changed");
    		        }
    		      } 
    		      
    		      else {
    		        for (int i = firstRow; i <= lastRow; i++) {
    		          if (index == TableModelEvent.ALL_COLUMNS) {
    		            System.out.println("All columns have changed");
    		        	  break;
    		          } else {
    		            System.out.println(index);
    		            System.out.println(table.getSelectedRow() + table.getSelectedColumn());
    		          }
    		        }
    		      }
    		      
    		      break;
    		    case TableModelEvent.DELETE:
    		      for (int i = firstRow; i <= lastRow; i++) {
    		        System.out.println("delete");
    		      }
    		      break;
    		    }
    		  }
    		}

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 © 2026 vBulletin Solutions, Inc. All rights reserved.