首页 新闻 搜索 专区 学院

swing如何使父组件的监听器不被覆盖掉?

0
悬赏园豆:20 [已解决问题] 解决于 2014-09-24 08:24

问题1:如下

public class Fm {  

  private static JFrame fm;

  public static void main(String[] args) {   

fm = new JFrame();

fm.setLayout(null);   

fm.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

fm.setSize(800, 600);   

fm.setLocationRelativeTo(null);

JPanel p = new JPanel();  

p.setBackground(Color.black);

p.setBounds(100, 50, 600, 400);

p.addMouseListener(new MouseAdapter() {  

  public void mouseClicked(MouseEvent e) {  

    System.out.println("p--mouseEntered");

}});

fm.addMouseListener(new MouseAdapter() {  

  public void mouseClicked(MouseEvent e) {   

    System.out.println("fm--mouseEntered");

}});

fm.add(p);

fm.setVisible(true);   

fm.validate();

  }

}

 

如上面的代码,当点击JPanel时,JFrame的鼠标点击事件不会被激活。

有什么办法实现:当鼠标点击JPanel时,JFrame也激活点击事件。

 

廖龙军的主页 廖龙军 | 初学一级 | 园豆:162
提问于:2014-09-18 14:11
< >
分享
最佳答案
0

我好像发现了什么。。。。

廖龙军 | 初学一级 |园豆:162 | 2014-09-18 14:25

在 JPanel p 的mouseClicked方法里添加下面的代码即可激活JFrame fm 的mouseClicked事件:

  fm.mouseClicked(e);

竟然会这么简单??

廖龙军 | 园豆:162 (初学一级) | 2014-09-18 14:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册