2017-02-18 61 views
1

如何让MouseListener在Java中是暂态的? 说我有:Java MouseListener瞬态

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 
    } 

} 

现在,如果我想序列的mainPanel将返回关于网格布局没有序列化的错误。

如果我不添加MouseListener到面板,一切OK;将序列化。

我想知道如果这个MouseListener可以设置为瞬态,以及如何?

谢谢。

+0

我感到困惑。你不想序列化'MouseListener';但这里唯一的'MouseListener'就是你想要序列化的类,'MyClass'。 –

+0

对不起,这是一个不好的例子。我编辑问题/代码,希望这个例子会更好... –

回答

0

好的......我通过创建一个自定义MouseListener并将其声明为瞬态来解决此问题。奇迹般有效。 :)