Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java][Pillola] Collegare un Popup a piu' componenti

    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());
            }
            
        }
    }
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Bella... dovresti, però, specificare che questa classe funziona solamente con la JDK 1.5 e non con le precedenti. Il costrutto ... , infatti, è stato aggiunto solamente a partire dalla versione 1.5 della JDK (prima era sufficiente passare un array).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Anche il ciclo for...
    Volendo la potrei riconvertire.

    specificare che questa classe funziona solamente con la JDK 1.5
    Si puo' aggiungere questa notizia usando JavaDoc?
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da dekdek
    Anche il ciclo for...
    Volendo la potrei riconvertire.



    Si puo' aggiungere questa notizia usando JavaDoc?
    Beh... diciamo che potresti utilizzare il tag @since. Non so, però, se abbia degli effetti sul compilato, come @deprecated.

    PS: Non avevo notato il ciclo for

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Beh... diciamo che potresti utilizzare il tag @since. Non so, però, se abbia degli effetti sul compilato, come @deprecated.
    Provato, no. A meno che non abbia capito che avevo bluffato...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.