敖风
2017-03-22 09:00
采纳率: 100%
浏览 2.0k
已采纳

java swing中:知道一个button,如何返回其所在的容器?

我是在button上加了一个listenner,在监听事件里可以用e.getSource()取得该button,我又想在监听器里操作button所在容器上的其他控件,怎么访问?

小白一枚,也许这个思路不靠谱,有更简单的实现访问容器panel上控件的方法

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 敖风 2017-03-23 03:09
    已采纳

    我现在这么解决:
    Object x = e.getSource();// 取得了调用监听器的button
    if(x.equals(p1.getComponent(6))){System.out.println("p1");}
    if(x.equals(p2.getComponent(6))){System.out.println("p2");}
    if(x.equals(p3.getComponent(6))){System.out.println("p3");}

    点赞 打赏 评论
  • steveyg 2017-03-22 09:11

    如果知道需要操作的控件是哪个,直接通过全局变量访问不行吗

    点赞 打赏 评论
  • 奔腾的野马 2017-03-22 11:32

    我有个办法可以解决这个问题:
    1.自己写一个button类,从Button这个类继承。
    2.在这个类添加一个成员变量Panel p;
    3.定义一个构造方法,参数可以接收Panel对象。
    4.定义好get,set方法。
    5.new button对象时给它传递它所在的Panel的引用
    如果有帮助希望采纳

    点赞 打赏 评论

相关推荐 更多相似问题