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

    Salvare dati su una jtable al cambio del panel

    Salve ragazzi spero mi possiate aiutare.

    Ho una applicazione che al suo avvio, ha due tabella in un jpanel ed altri componenti swing.

    Un menù che permette all'utente di spostarsi tra vari JPanel.

    Un utente può iniziare a scrivere qualcosa sulle due tabelle, poi per qualsiasi motivo va su un altro panel per vedere un dato, ritorna nuovamente sul panel in cui stava scrivendo sulle tabelle e ovviamente trova tutto vuoto e deve ripetere il procedimento da capo.

    Spero di avervi fatto capire cosa intendo.

    Voglio sapere, c'è un modo per fare in modo che vengano salvati automaticamente i dati scritti nella tabella????

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Salvare dati su una jtable al cambio del panel

    Originariamente inviato da bircastri
    Un utente può iniziare a scrivere qualcosa sulle due tabelle, poi per qualsiasi motivo va su un altro panel per vedere un dato, ritorna nuovamente sul panel in cui stava scrivendo sulle tabelle e ovviamente trova tutto vuoto e deve ripetere il procedimento da capo.
    Presumo perché rimuovi fisicamente i componenti. Potresti ad esempio non fare così ma avere più pannelli e: a) "giocare" tu sulla visibilità dei pannelli (ne rendi visibile solo uno per volta) o b) usare un CardLayout che fa in modo più semplice il gioco di rendere visibile solo uno di N componenti.

    Anche ammesso che tu voglia rimuovere fisicamente i componenti, nessuno ti vieterebbe di tenerti almeno il reference al table model. Percui quando ricrei il pannello, se ti sei tenuto il table model e lo assegni ad un nuovo JTable .... voilà, hai di nuovo i dati pronti.

    Insomma la questione non è tanto come "salvare" i dati .... ma come non perderli!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    e si hai ragione, io cancello proprio tutto.

    ti posto il meccanisco che utilizzo per cambiare un pannello...

    codice:
    public TestaFrame() {
    
    		    super("Versione 1.0");
    	        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    	        Dimensione d2 = new Dimensione();
    	        this.setPreferredSize(d2.DimensionePanel());     
    	        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			this.pack();
    	        this.setVisible(true);
    	        this.setResizable(true);
    	        MenuLookDemo22 demo = new MenuLookDemo22();
    	        this.setJMenuBar(demo.createMenuBar());
    	        
    	        //adesso attacco al frame il pannello principale che sarà il cuore del programma
    	        mainpanel = new MainPanel();
    		    getContentPane().add(mainpanel, BorderLayout.CENTER);
    	        getContentPane().validate();
    	       
    	        //fine
    	 }//fine testaframe
    il menu invece fa questo

    codice:
     menuBar = new JMenuBar();
    
    		        //Build the first menu.
    		        menu = new JMenu("File");
    		        menuBar.add(menu);
    		        
    		        menuItemR = new JMenuItem("Salva Ricetta",
    		                KeyEvent.VK_T);
    		        
    		        menuItemR.addActionListener( new ActionListener() {
    		           public void actionPerformed( ActionEvent e ) {
    		        	   
    		        	   mainpanel.salvaRicetta();
    		           }//fine metodoVoid
    		        });//fine actionlistener 
    		        menu.add(menuItemR);
    		        
    		        menuItem = new JMenuItem("Esci",
    		                KeyEvent.VK_T);
    		        menuItem.addActionListener( new ActionListener() {
    		           public void actionPerformed( ActionEvent e ) {
    		           	    System.exit(0);
    		           }//fine metodoVoid
    		        });//fine actionlistener 
    		        menu.add(menuItem);
    		        
    		        menu = new JMenu("Inserisci");
    		        menuBar.add(menu);
    		        menuItem = new JMenuItem("Ingredienti",
    		                KeyEvent.VK_T);
    		        menuItem.addActionListener( new ActionListener() {
    		           public void actionPerformed( ActionEvent e ) {
    		           	    getContentPane().remove(0);
    		           	    menuItemR.setEnabled(false);
    		        	   PanelIngredienti ingredienti = new PanelIngredienti();
    		               getContentPane().add(ingredienti, BorderLayout.CENTER);
    		               getContentPane().validate();
    		           }//fine metodoVoid
    		        });//fine actionlistener 
    		        menu.add(menuItem);
    		        
    		        menu = new JMenu("Visualizza");
    		        menuBar.add(menu);
    		        menuItem = new JMenuItem("Zuccheri Puri",
    		                KeyEvent.VK_T);
    		        menuItem.addActionListener( new ActionListener() {
    		           public void actionPerformed( ActionEvent e ) {
    		           	    getContentPane().remove(0);
    		           	 menuItemR.setEnabled(false);
    		        	   PanelZuccheriPuri zuccheriPuri = new PanelZuccheriPuri();
    		               getContentPane().add(zuccheriPuri, BorderLayout.CENTER);
    		               getContentPane().validate();
    		           }//fine metodoVoid
    		        });//fine actionlistener 
    		        menu.add(menuItem);
    		        
    		        menu = new JMenu("Modifica");
    		        menuBar.add(menu);
    		        menuItem = new JMenuItem("Composizione Ingredienti Compositi",
    		                KeyEvent.VK_T);
    		        menuItem.addActionListener( new ActionListener() {
    		           public void actionPerformed( ActionEvent e ) {
    		           	    getContentPane().remove(0);
    		           	 menuItemR.setEnabled(false);
    		        	   PanelZuccheriCompositi zuccheriCompositi = new PanelZuccheriCompositi();
    		               getContentPane().add(zuccheriCompositi, BorderLayout.CENTER);
    		               getContentPane().validate();
    		           }//fine metodoVoid
    		        });//fine actionlistener 
    		        menu.add(menuItem);
    quindi come puoi vedere io rimuovo ogni volta un panel e ne inserisco un altro...

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.