Java Cursor Mouse

La classe Cursor del package java.awt definisce tutti i possibili tipi di cursore del mouse che un sistema operativo a finestre mette a disposizione. La classe java.awt.Component superclasse di tutti i componenti grafici definiti sia in Awt che Swing implementa il metodo Component.setCursor(java.awt.Cursor) che imposta il cursore del mouse che gli passiamo come parametro. Ciò significa che quando passiamo con il mouse sul componente il cursore del mouse cambia aspetto in base a quello che abbiamo impostato noi. La classe Cursor implementa già una vasta serie di puntatori di mouse. Per ottenere un'istanza di un Cursor si usa il metodo statico Cursor.getPredefinedCursor() che riceve un intero che identifica il tipo di puntatore, che possiamo scegliare tra quelli già implementati di default; ad esempio:
import java.awt.Cursor;
....
JButton button = new JButton("Click");
Cursor cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
button.setCursor(cursor);
Quando passeremo con il mouse sul JButton il mouse diventerà a forma di clessidra (Cursor.WAIT_CURSOR). Altri tipi di cursori definiti sono:
  • Cursor.MOVE_CURSOR: il cursore solitamente abbinato alla funzione 'sposta' per le finestre
  • Cursor.TEXT_CURSOR: il cursore che viene visualizzato negli editor di testo
  • Cursor.MOVE_CROSSHAIR_CURSOR: cursore a forma di '+'
  • Cursor.HAND_CURSOR: la classica mano dei collegamenti ipertestuali
Adesso invece vediamo una cosa un po più curiosa, definiamo noi un cursore del mouse con una immagine a nostra scelta. L'operazione è semplicissima. Si crea un oggetto Image attraverso il Toolkit di sistema specificando il percorso dove risiede l'immagine (getImage()). Sempre utilizzando il Toolkit tramite il metodo createCustomCursor() otteniamo un oggetto Cursor a partire dell'immagine da noi selezionata. Questo è un esempio:
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
...
JFrame frame = new JFrame("CursorMouseDemo");
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("cursor.gif");
Cursor customCursor = toolkit.createCustomCursor(image , new Point(0,0), "customCursor");
frame.setCursor(customCursor);
Ogni volta che passiamo sul JFrame con il puntatore del mouse, il cursore assume l'aspetto dell'immagine gif che abbiamo impostato.
Altri link che potrebbero interessarti
  • Utilizzare un JButton in Java Swing
  • Utilizzare HTML in componenti Java Swing
  • Numeri casuali in java
  • Modalità Full Screen Exclusive in java
  • Leggere un file di testo in java
  • Le variabili atomiche in java
  • Le classi anonime
  • Java Regex
  • Java Database MySql
  • Import Static Java
  • Implementare un Singleton
  • Implementare un KeyListener in java Swing
  • Implementare il System.out su una JTextArea
  • Il costrutto if in java
  • Il costrutto foreach in java
  • Il blocco static
  • Creare una ToolBar in Java Swing
  • Chiudere le applicazioni Java Swing
  • Bordo con titolo in Java Swing
  • Background Image per componenti Java Swing