首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java MouseListener瞬态

Java MouseListener瞬态
EN

Stack Overflow用户
提问于 2017-02-18 19:55:20
回答 2查看 198关注 0票数 1

怎样才能让MouseListener在java中变得短暂?假设我有:

代码语言:javascript
复制
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将返回一个关于GridLayout no Serializable的错误。

如果我不将MouseListener添加到面板中,一切正常;将进行序列化。

我想知道是否可以将此MouseListener设置为瞬态,以及如何设置?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-02-18 20:27:26

GridLayouts是不可序列化的。

关于鼠标侦听器-您需要做的是在序列化对象时删除侦听器,并在反序列化方法上重新添加鼠标侦听器。

How to make my MouseListeners work in a deserialized JPanel?

也可以在那里阅读答案。

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2017-02-18 20:52:32

好的..。我通过创建一个自定义的MouseListener并将其声明为瞬态来解决了这个问题。就像一种护身符。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42314819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档