Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Cursore Java

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    2

    Cursore Java

    Ciao ragazzi, ho qeusto tipo di problema:
    ho un JFrame che contiene un JDesktopPane che a sua volta contiene altri JInternalFrame.

    Adesso voglio cambiare il cursore del mouse, so farlo però lo cambia solo nei componenti con ciu richiamo il metodo SetCursor().

    Avrei la necessità di cambiarlo a tutti i componenti.

    Ho provato a invocare il metodo SetCursor() sul frame principale, però quando mi sposto sugli altri componenti ritorna normale.

    AIUTO!!!!
    Grazie

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

    Re: Cursore Java

    Originariamente inviato da nello86
    Avrei la necessità di cambiarlo a tutti i componenti.

    Ho provato a invocare il metodo SetCursor() sul frame principale, però quando mi sposto sugli altri componenti ritorna normale.
    Una possibilità non troppo complicata è farsi un piccolo metodo che dato es. un JInternalFrame faccia il setCursor in modo ricorsivo su tutti i componenti contenuti.
    Questo è possibile perché a livello più astratto ci sono Component e Container (quest'ultimo è-un Component e contiene N Component), quindi puoi scansionare tutto l'albero di componenti.
    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
    Nov 2011
    Messaggi
    2
    Grazie andbin,
    potrebbe essere una soluzione.

    Domanda:
    In java è possibile cambiare il cursore del sistema??

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da nello86
    In java è possibile cambiare il cursore del sistema??
    Proprio del sistema che io sappia no.

    Una possibilità comunque ci sarebbe ma è da valutare: rendere visibile il "glass pane" e impostargli un cursore.
    Ogni JFrame contiene un JRootPane che è quello che contiene il content pane (quello dove si mettono di solito i componenti) e un glass pane che sta "sopra" il content pane ma nella situazione normale è invisibile.

    In sostanza:

    codice:
    getRootPane().getGlassPane().setCursor(.....);
    getRootPane().getGlassPane().setVisible(true);
    getRootPane() è di JFrame.

    Il punto è che il glass pane si usa (e il framework lo usa) per cose particolari come il drag&drop o altri effetti particolari. Bisognerebbe valutare se ha senso e se è una buona cosa (e se non ci sono implicazioni negative) usare questo approccio solo per impostare in modo "globale" un cursore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.