Etkinlik dinleyicinizle, etkinliği ana bileşene gönderebilirsiniz.
fonksiyonu bağımsız değişken taşıma etkinliği myEvent
olmak:
Component source=(Component)myEvent.getSource();
source.getParent().dispatchEvent(myEvent);
Ancak bu çözelti, her bir eleman eklemek için yeni bir EventListener oluşturmak anlamına gelir.
Yani, böyle seçilen tüm çocuklara eklemeden, tek olay işleyicisi oluşturmak ve yeniden kullanımı:
final Container parent=this; //we are a the parent container creation code
MouseListener 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
Neden bu (örnek) yapmama gerek var mı? – Pete
Birçok etiketli nesnelerim var, bunlar gerçekten ilk kez tıkladıkları her yerde sürüklenebilmelidir. Şu anda, sadece öğenin arka planını tıklattığımda, içerideki herhangi bir etiketi değilken sürüklenebilirler. – viraptor