salve ragazzi avrei un quesito da porvi.

Allora, ho una applicazione che al suo avvio carica all'interno di un Jframe un JPanel con al suo interno due tabelle ed altri componenti swing. Alle due tabelle ho abilitato il drag and drop insomma funziona tutto, poi se vado attraverso il menù in un altra schermata e ritorno (senza riavviare il programma) sul panel principale, non funziona più niente è come se tutto fosse nullo, in pratica le tabelle non funzionano ecc ecc

Ho paura che il problema sia nel modo in cui io richiamo i panel tramite il menu. posto il codice

codice:
package Main;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JProgressBar;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

import Componenti_Swing.Dimensione;
import Panel.MainPanel;
import Panel.PanelIngredienti;
import Panel.PanelZuccheriCompositi;
import Panel.PanelZuccheriPuri;


public class TestaFrame extends JFrame{
	PanelIngredienti ingredienti;
	MainPanel mainpanel;
	
	 public TestaFrame() throws InstantiationException, IllegalAccessException{

		    super("iGelato 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
	 
	 public static void main(String[] args) {
	        SwingUtilities.invokeLater(new Runnable() {
	            public void run() {
	               try {
					TestaFrame f = new TestaFrame();
				} catch (InstantiationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	               
	            }
	        });}//fine metodo main
	 
	 public class MenuLookDemo22{
		    public JMenuBar createMenuBar() {
		        JMenuBar menuBar;
		        JMenu menu, submenu;
		        JMenuItem menuItem;
				final JMenuItem menuItemR;
		        JRadioButtonMenuItem rbMenuItem;
		        JCheckBoxMenuItem cbMenuItem;

		        //Create the menu bar.
		        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("Bilanciamento");
		        menuBar.add(menu);
		        menuItem = new JMenuItem("Ricetta",
		                KeyEvent.VK_T);
		        menuItem.addActionListener( new ActionListener() {
		           public void actionPerformed( ActionEvent e ) {
		           	    getContentPane().remove(0);
		           	 menuItemR.setEnabled(true);
		           	mainpanel = null;
					try {
						mainpanel = new MainPanel();
						System.out.println("Ciccio spugna");
					} catch (InstantiationException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					} catch (IllegalAccessException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				    getContentPane().add(mainpanel, BorderLayout.CENTER);
			        getContentPane().validate();
		           }//fine metodoVoid
		        });//fine actionlistener 
		        menu.add(menuItem);
		        
		        return menuBar;

}}}//fine classe generale
spero in un vostro aiuto

Michele