2017-02-18 13 views
1

Wie kann ich MouseListener in Java vorübergehend machen? Sagen, ich habe:Java MouseListener transient

public class PanelClass extends JPanel implements Serializable{ 
    private int w; 
    private int h; 
    public PanelClass(int w, int h){ 
     this.w = w; 
     this.h = h; 
      this.setSize(w, h); 
      this.setBounds(0, 0, w, h); 
    }  
} 

public class MainPanel extends JPanel implements Serializable{ 
    public MainPanel(){ 
     setSize(500,500); 
    } 
} 


public class MyClass implements MouseListener, Serializable{ 
    private ArrayList<PanelClass> panels = new ArrayList<>(); 
    private MainPanel mp = new MainPanel(); 

    for(PanelClass panel : panels){ 
     panel.addMouseListener(this); 
     mp.add(panel); 
    } 

    private void serialize(){ 
      //SERIALIZE MainPanel 
    } 

} 

Nun, wenn ich will Mainpanel serialisiert wird eine Fehlermeldung über Gridlayout nicht Serializable zurück.

Wenn ich den MouseListener nicht zum Panel hinzufüge, alles OK; wird serialisieren.

Ich frage mich, ob dieser MouseListener als vorübergehend festgelegt werden kann, und wie?

Vielen Dank.

+0

Ich bin verwirrt. Sie möchten den 'MouseListener' nicht serialisieren; aber der einzige "MouseListener" ist hier die Klasse, die Sie zu serialisieren versuchen, 'MyClass'. –

+0

Sorry, war ein schlechtes Beispiel. Ich bearbeite die Frage/den Code, hoffentlich wird dieses Beispiel besser ... –

Antwort

0

OK ... Ich habe dies gelöst, indem ich einen benutzerdefinierten MouseListener erstellt und ihn als vorübergehend deklariert habe. Klappt wunderbar. :)

Verwandte Themen