在事件侦听器中,您可以将事件调度到父组件。
作为
myEvent事件处理函数参数:
Component source=(Component)myEvent.getSource();source.getParent().dispatchEvent(myEvent);
但是此解决方案意味着为每个要添加的元素创建一个新的EventListener。
因此,您可以创建一个事件处理程序并重用它,将其添加到所有选定的子项中,如下所示:
final Container parent=this; //we are a the parent container creation preMouseListener myCommonListener=new MouseListener() { @Override public void mouseClicked(MouseEvent e) { parent.dispatchEvent(e); } @Override public void mouseEntered(MouseEvent e) { parent.dispatchEvent(e); } @Override public void mouseExited(MouseEvent e) { parent.dispatchEvent(e); } @Override public void mousePressed(MouseEvent e) { parent.dispatchEvent(e); } @Override public void mouseReleased(MouseEvent e) { parent.dispatchEvent(e); }};JLabel label=new JLabel("This is the first Label");label.addMouseListener(myCommonListener);JLabel label2=new JLabel("This is the second Label");label2.addMouseListener(myCommonListener);//... and so on


