Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160

    Problema con createCustomCursor()

    Ciao,

    ho provato a caricare un icona personale per il cursore.

    Ho utilizzato il seguente codice

    codice:
    ImageIcon tmp = new ImageIcon("attempt.gif");
    Image img = tmp.getImage();
    Toolkit t = Toolkit.getDefaultToolkit();
    Cursor cursore = t.createCustomCursor(img,new Point(0,0),"attempt");
    setCursor( cursore );
    
    //Esegue operazioni
                
    setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

    L'applicazione esegue le sue operazioni in modo corretto, ma il cursore personalizzato non viene visualizzato. Eppure facendo il debug esegue tutte le istruzione senza errori.

    Perchè?

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

    Re: Problema con createCustomCursor()

    Originariamente inviato da Cool81
    ho provato a caricare un icona personale per il cursore.

    L'applicazione esegue le sue operazioni in modo corretto, ma il cursore personalizzato non viene visualizzato.
    Il nome del file è relativo alla "directory corrente". Sicuro di essere in quella directory dove c'è il file attempt.gif??

    Se ImageIcon non trova il file, ottieni comunque un oggetto ImageIcon e il suo Image interno è un oggetto istanziato (non è null) ma con width/height -1. Quindi inutilizzabile. E non sbuca fuori nessuna eccezione nelle varie operazioni che fai!!
    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 L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Giusto, sbagliavo il percorso. Ora ho corretto così:

    codice:
    ImageIcon tmp = new ImageIcon(getClass().getResource("/images/attempt.gif"));
    Image img = tmp.getImage();
    Cursor cursore = Toolkit.getDefaultToolkit().createCustomCursor(img,new Point(0,0),"attempt");
    setCursor(cursore);

    Ma c'è un però. La mia immagine ha dimensione 200 x 30, ma me la visualizza compressa.

    Ci sono per caso dei limiti nelle dimensioni dei cursori?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Cool81
    La mia immagine ha dimensione 200 x 30
    Mazza! Che cursore è???

    Originariamente inviato da Cool81
    ma me la visualizza compressa.

    Ci sono per caso dei limiti nelle dimensioni dei cursori?
    Limiti sicuramente ce ne sono, specialmente se si parla del cursore "hardware" gestito dalla scheda grafica. Una dimensione "standard" tipicamente è 32x32. Toolkit ha anche un getBestCursorSize() che fornisce la dimensione supportata più "vicina" a quella desiderata passata come argomento.
    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 Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    E che tu sappia è possibile utilizzare delle gif animate come immagine del cursore?

    Perchè ora mi si impalla qui

    codice:
    Cursor c = java.awt.Toolkit.getDefaultToolkit().createCustomCursor(img,new Point(0,0),"loading_32x32");
    può dipendere dal fatto che gli stia passando una gif animata appunto?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Cool81
    E che tu sappia è possibile utilizzare delle gif animate come immagine del cursore?
    No non è possibile, lo dice la documentazione di createCustomCursor:

    Note that multi-frame images are invalid and may cause this method to hang.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Grazie.

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.