Se puo' essere utile, posto questa stupida estensione di JPopUpMenu che collega lo stesso popup a piu' componenti della GUI. Mancano alcune funzionalita' perche'... Perche' finora non mi sono servite!!!
La sintassi e' semplice, basta fornire come paramentro aggiuntivo al costruttore, l'elenco dei componenti.
codice:
/*
* DeKPopupMenu.java
*
* Created on 27 marzo 2005, 23.20
*/
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPopupMenu;
/**
*
* @author DeK
*/
public class DeKPopupMenu extends JPopupMenu {
Component[] contesto;
public DeKPopupMenu(Component... c) {
this(null, c);
}
public DeKPopupMenu(String s, Component... c) {
super(s);
contesto = c;
}
public void activate() {
for (Component c: contesto)
c.addMouseListener(new PopupListener());
}
// Listener aggiunto al componente designato per attivare il popup
// Fonte: <http://java.sun.com/docs/books/tutor...ents/menu.html>
class PopupListener extends MouseAdapter {
public void mouseReleased(MouseEvent e) {
check(e);
}
public void mousePressed(MouseEvent e) {
check(e);
}
private void check(MouseEvent e) {
if (e.isPopupTrigger())
show(e.getComponent(), e.getX(), e.getY());
}
}
}