Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19

    actionlistener su Jcomponent sovrapposti

    ciao,
    ho un jpanel su cui ho installato un mouselistner.
    il relativo actionPerformed mi aggiunge una Jtextarea che copre l'intero jpanel.
    ovviamente a questo punto il click non viene più ascoltato dal Jpanel.
    cosa si fa in questi casi??

    ps. ho letto nel tutorial che utilizzando il glasspane potrei risolvere il problema ma io ho un Jpanel non una Jframe o Jdialog.

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: actionlistener su Jcomponent sovrapposti

    Originariamente inviato da nicolaz
    ho un jpanel su cui ho installato un mouselistner.
    il relativo actionPerformed mi aggiunge una Jtextarea che copre l'intero jpanel.
    ovviamente a questo punto il click non viene più ascoltato dal Jpanel.
    Magari non ti sei spiegato bene ... parli di mouselistener ma poi di actionPerformed (è di ActionListener e serve per pulsanti, menù, ecc...).
    E comunque ammesso che intendi proprio un MouseListener, nessuno ti vieterebbe di registrarlo sul JTextArea ma poi .... cosa dovrebbe fare? Cioè concettualmente: click sul pannello aggiunge la textarea ... e un click sulla textarea?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19
    hai ragione andbin!!!,
    provo a semplificare:
    intercetto il click su un componente (Jpanel) con un mouselistner (per farmi aprire un popupmenu), poi copro lo stesso componente con un altro (jTextarea). se riclicco ora, ovviamente, non succede nulla.
    devo per forza registrare anche sul secondo componente il mouselistner?
    spero di aver migliorato...
    grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da nicolaz
    intercetto il click su un componente (Jpanel) con un mouselistner (per farmi aprire un popupmenu), poi copro lo stesso componente con un altro (jTextarea). se riclicco ora, ovviamente, non succede nulla.
    devo per forza registrare anche sul secondo componente il mouselistner?
    La questione non è tanto tecnica ma ... concettuale. Il menù di popup che apri dal click sul pannello avrà determinate opzioni che hanno senso proprio per il pannello e la situazione che hai in quel momento.

    Anche su JTextArea puoi registrare un MouseListener e mostrare un menù di popup ma ... questo dovrebbe, in linea teorica, avere senso per la textarea (esempio banale le classiche opzioni "Copia", "Taglia", ecc....).

    Quindi?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Bè ovvio che non funziona più...lo copri...
    io farei una delle 2:
    1)Non farei occupare l'intero pannello dalla jtextarea lasciando libero il pulsante.
    2)Metterei un listenere sulla jtextarea al cui interno richiamo il listener del pulsante, o attivo cmq l'evento "cliccato" su questo.

  6. #6
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Bè ovvio che non funziona più...lo copri...
    io farei una delle 2:
    1)Non farei occupare l'intero pannello dalla jtextarea lasciando libero il pulsante...è la soluzione ovvia, ma sec me è anke la migliore: se hai necessità di ripremere il bottone nn ha senso coprirlo.
    2)Metterei un listener sulla jtextarea al cui interno richiamo il listener del pulsante, o attivo cmq l'evento "cliccato" su questo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19
    il popup mi serve per aprire una jdialog in cui faccio inserire delle info che associo al jpanel.

    vorrei quindi lascaire questa opportunità anche se "sopra" il jpanel c'è un altro componente.
    ciao

  8. #8
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Aspè allora ho saltato un passaggio!
    Cioè premi il bottone e ti si apre una JDialog, poi sulla JDialog hai ad es. un altro pulsante ke una volta premuto ti aggiorna dei campi sulla JFrame principale?
    E' così?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da nicolaz
    vorrei quindi lascaire questa opportunità anche se "sopra" il jpanel c'è un altro componente.
    Allora comunque devi registrare un MouseListener sulla textarea. Che poi potrebbe anche essere esattamente lo stesso identico oggetto MouseListener che hai usato per il pannello.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Originariamente inviato da andbin
    Allora comunque devi registrare un MouseListener sulla textarea. Che poi potrebbe anche essere esattamente lo stesso identico oggetto MouseListener che hai usato per il pannello.
    Vero è la miglior soluzione

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.