vedere anche: immagini

Gestione delle immagini nell'interfaccia grafica

Un'applicazione Java usa il metodo getResource() per mostrare le immagini sulla GUI. Inoltre ad un'immagine può venire associato un gestore di evento. In genere l'immagine viene mostrata in un componente JLabel.

Creare l'applicazione.

  1. File → New Project

  2. Selezionare Java → Java Application

  3. Assegnare il nome del progetto: MostraImmagini

  4. Togliere la marca di spunta alla casella Create Main Class

  5. Premere il pulsante Finish

Creare il form.

  1. Nella finestra del progetto espandere il nodo MostraImmagini

  2. Clic destro sul nodo Source Packages e, dal menu contestuale scegliere New → JFrame Form.

  3. Nella casella Class Name scrivere: Immagini.

  4. Nella casella Package Name scrivere: my.immagini.

  5. premere il pulsante Finish.

Aggiungere la label:
Nella casella dei componenti trascinare una label sul frame.

Aggiungere un Package per le immagini

Quando in una applicazione si usano immagini o altre risorse si deve creare un package per le risorse. Sul computer, il package corrisponde ad una cartella.

Per creare un package per le immagini:
nella finestra del progetto fare clic destro sul package my.immagini e, dal menu contestuale, scegliere la voce: New → Java Package. Premere il pulsante Finish.

Nella finestra del progetto, verificare che il nuovo package compaia all'interno della cartella Source Package

Mostrare le immagini sulla label.

  1. Nell'area del Designer, selezionare la label che si trova sul form.

  2. Nella finestra delle proprietà fare clic sulla categoria Properties e scorrere la casella fino a raggiungere la riga Icon.

  3. fare clic sul pulsante con i puntini (…). Si apre l'editor della proprietà Icon.

  4. Nel riquadro di dialogo relativo alla proprietà icon fare clic sul pulsante Import to Project.

  5. Si apre un riquadro per sfogliare le cartelle. Raggiungere l'immagine che si vuole usare e premere il pulsante Next.

  6. Nella casella Select target folder selezionare la cartella del nuovo package aggiunto nel passaggio precedente: newpackage e premere il pulsante Finish.

  7. Premere il pulsante Ok per chiudere il riquadro di dialogo.

L'immagine viene inserita nel progetto, che quindi farà parte dell'applicazione. Vengono anche generate le linee di codice nella classe Immagini per far riferimento all'immagine e, infine, l'immagine viene mostrata sulla label.

È opportuno, in questo caso, cancellare il testo della label.

Associare un gestore degli eventi del mouse sulla label.

Nella casella Design fare clic destro sul componente JLabel e, dal menu contestuale, scegliere Events > Mouse > mouseClicked/mousePressed/mouseReleased.

Nota: il gestore degli eventi riceve il messaggio relativo all'evento nell'oggetto event. Questo contiene varie informazioni, sull'evento, ad esempio le coordinate del punto in cui si fa clic si possono conoscere con i metodi event.getPoint(), event.getX(), o event.getY().

Eseguire l'applicazione.

Bisogna specificare la classe principale del progetto, allo scopo di definire il punto di inizio dell'applicazione, quando verrà eseguita.

Per specificare la clase principale:

  1. nella finestra del progetto, fare clic destro sul nodo mostraImmagini e scegliere la voce Proprietà

  2. Nel riquadro di dialogo delle proprietà selezionare la categoria Run.

  3. Fare clic sul pulsante Sfoglia accanto alla casella Main Class. selezionare la classe my.immagini.Immagini.

  4. Premere il pulsante Select main Class

  5. Premere il pulsante Ok.

Per osservare l'applicazione in esecuzione scegliere Clean and build Project dal menu Run.

In genere, l'applicazione non mostra un'immagine già determinata, come nell'esempio, ma potrebbe mostrare un'immagine determinata da una scelta dell'utente.

In questo caso, si deve scrivere un codice personalizzato per l'accesso e la visualizzazione delle risorse. L'IDE impedisce di scrivere direttamente tali istruzioni, ma impone che queste istruzioni vengano scritte mediante l'editor delle proprietà, richiamabile dalla finestra delle proprietà.

Per scrivere il codice personalizzato per la proprietà icon del componente JLabel:

  1. Nell'area del progetto selezionare il componente JLabel.

  2. Nella finestra delle proprietà fare clic sul pulsante con i puntini (…) sulla riga della proprietà icon.

  3. Dall'elenco che compare selezionare Custom Code

L'opzione Custom Code nell'editor delle proprietà consente di scrivere i parametri del metodo setIcon. In questo parametro si può scrivere una chiamata ad un metodo che verrà inserito nella classe e che provvede a caricare l'immagine.


Disegnare.

Tutorial originale

Avviare un nuovo progetto. Assegnare il nome Canvas e cancellare il nome nella casella Create main Class.

Aggiungere un Frame. Assegnare il nome Tela e inserirlo nel package my.tela.

Disporre un Pannello sul frame e ridimensionarlo per coprire il frame.

Passare alla scheda Source e inserire le seguenti linee nella sezione intestazione del file:

import java.awt.*;

Aggiungere la seguente Proprietà alla classe Tela:

Graphics g2;

Tornare alla scheda Design.

Aggiungere un pulsante sul pannello (nell'angolo superiore destro). Aggiungere il gestore dell'evento clic al pulsante. Completare il gestore con le segueti linee:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

  g2 = (Graphics2D) jPanel1.getGraphics();

  g2.drawLine(10, 10, 100, 10);

}

Nel menu Run scegliere la voce Esegui il progetto. Quando si apre la finestra dell'applicazione, premere il pulsante per disegnare la linea.

Si deve notare che se la finestra viene ridotta a icona e poi ripristinata, oppure viene prima coperta da un altra finestra e poi scoperta, la linea disegnata viene persa.

Ridefinire il metodo paint ereditato dalla classe JPanel.

public void paint(Graphics g){

  Graphics2D g2 = (Graphics2D) g;

  g2.drawRect(10, 10, 100, 100);

}

Ripetere le operazioni di riduzione a icona e di ripristino. Si nota che il rettangolo, disegnato nel metodo paint viene ridisegnato