Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Applicazioni Grafiche in Java: Guida Introduttiva, Dispense di Programmazione Orientata agli Oggetti

Questa guida introduce le applicazioni grafiche in java, spiegando come creare finestre, disegnare figure e gestire eventi. Vengono forniti esempi di codice per la creazione di frame, la visualizzazione di rettangoli e la gestione dell'input utente. Approfondisce l'uso di classi come jframe, jcomponent e graphics2d, essenziali per lo sviluppo di interfacce grafiche. Include anche esempi pratici come il disegno di automobili e il calcolo di intersezioni, rendendo i concetti più accessibili e applicabili. La guida è ideale per studenti e sviluppatori che desiderano apprendere le basi della programmazione grafica in java e creare applicazioni interattive.

Tipologia: Dispense

2024/2025

Caricato il 16/09/2025

federica-de-simone-6
federica-de-simone-6 🇮🇹

5 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Applicazioni grafiche in Java
1. Definizione di applicazione grafica:
oUn'applicazione grafica è un programma che mostra
informazioni in una finestra con una barra del titolo e una
cornice (frame).
oIn Java, queste finestre sono gestite dalla classe
javax.swing.JFrame.
2. Thread e frame:
oOgni frame è gestito in un thread separato, che è un flusso
indipendente di esecuzione. Questo consente di gestire
operazioni grafiche in modo indipendente dal resto del
programma.
Esempio di una finestra vuota
Codice:
import javax.swing.*;
public class EmptyFrameViewer {
public static void main(String[] args) {
JFrame frame = new JFrame();
final int FRAME_WIDTH = 300;
final int FRAME_HEIGHT = 400;
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("An Empty Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Dettagli:
1. Si crea un oggetto JFrame.
2. Si definiscono larghezza (FRAME_WIDTH) e altezza
(FRAME_HEIGHT) della finestra.
3. La finestra è resa visibile con frame.setVisible(true).
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica Applicazioni Grafiche in Java: Guida Introduttiva e più Dispense in PDF di Programmazione Orientata agli Oggetti solo su Docsity!

Applicazioni grafiche in Java

  1. Definizione di applicazione grafica : o Un'applicazione grafica è un programma che mostra informazioni in una finestra con una barra del titolo e una cornice (frame). o In Java, queste finestre sono gestite dalla classe javax.swing.JFrame.
  2. Thread e frame : o Ogni frame è gestito in un thread separato, che è un flusso indipendente di esecuzione. Questo consente di gestire operazioni grafiche in modo indipendente dal resto del programma. Esempio di una finestra vuotaCodice : import javax.swing.*; public class EmptyFrameViewer { public static void main(String[] args) { JFrame frame = new JFrame(); final int FRAME_WIDTH = 300; final int FRAME_HEIGHT = 400; frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("An Empty Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }  Dettagli :
  3. Si crea un oggetto JFrame.
  4. Si definiscono larghezza (FRAME_WIDTH) e altezza (FRAME_HEIGHT) della finestra.
  5. La finestra è resa visibile con frame.setVisible(true).

Disegnare figure

  1. Aggiunta di un oggetto grafico a un frame : o È necessario definire un oggetto di tipo JComponent, estendere la classe e sovrascrivere il metodo paintComponent.
  2. Metodo paintComponent : o È automaticamente chiamato in varie situazioni, come:  Quando la finestra viene mostrata per la prima volta.  Quando la finestra viene ridimensionata o resa visibile dopo essere stata nascosta. o Questo metodo contiene le istruzioni per disegnare. Esempio: Disegnare rettangoliFile RectangleComponent.java : import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; public class RectangleComponent extends JComponent { public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; Rectangle box = new Rectangle(5, 10, 20, 30); g2.draw(box); box.translate(15, 25); g2.draw(box); } }  File RectangleViewer.java : import javax.swing.JFrame; public class RectangleViewer { public static void main(String[] args) { JFrame frame = new JFrame(); final int FRAME_WIDTH = 300; final int FRAME_HEIGHT = 400; frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("Two rectangles"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Two rectangles

Forme grafiche

  1. Rettangoli, ellissi e linee : o Rettangoli: Rectangle. o Ellissi: Ellipse2D.Double. o Linee: Line2D.Double.
  2. Disegnare testo : g2.drawString("Message", 50, 100);
  3. Colore : o Colori standard come Color.BLUE. o Creazione di colori personalizzati con combinazioni RGB: Color magenta = new Color(1.0F, 0.0F, 1.0F); g2.setColor(magenta); g2.fill(rectangle); Esempio: Disegno di autoClasse Car : import java.awt.Graphics2D; import java.awt.Rectangle; public class Car { private int x; private int y; public Car(int x, int y) { this.x = x; this.y = y; }

public void draw(Graphics2D g2) { Rectangle body = new Rectangle(x, y, 60, 30); g2.draw(body); } }  Posizionamento dinamico : o Calcolare la posizione basandosi su larghezza e altezza della finestra: int x = getWidth() - 60; int y = getHeight() - 30; Applicazioni grafiche in Java

  1. Definizione di applicazione grafica : o Un'applicazione grafica è un programma che mostra informazioni in una finestra con una barra del titolo e una cornice (frame). o In Java, queste finestre sono gestite dalla classe javax.swing.JFrame.
  2. Thread e frame : o Ogni frame è gestito in un thread separato, che è un flusso indipendente di esecuzione. Questo consente di gestire operazioni grafiche in modo indipendente dal resto del programma. Esempio di una finestra vuotaCodice : import javax.swing.*; public class EmptyFrameViewer { public static void main(String[] args) { JFrame frame = new JFrame(); final int FRAME_WIDTH = 300; final int FRAME_HEIGHT = 400; frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("An Empty Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

import javax.swing.JFrame; public class RectangleViewer { public static void main(String[] args) { JFrame frame = new JFrame(); final int FRAME_WIDTH = 300; final int FRAME_HEIGHT = 400; frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); frame.setTitle("Two rectangles"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); RectangleComponent component = new RectangleComponent(); frame.add(component); frame.setVisible(true); } }  Passaggi principali :

  1. Creazione di un frame.
  2. Creazione di una componente (RectangleComponent).
  3. Aggiunta della componente al frame.
  4. Visualizzazione del frame. Applet
  5. Definizione : o Un'applicazione che viene eseguita in un browser web, estendendo JApplet invece di JComponent.
  6. Differenze rispetto a un'applicazione normale : o Il codice per il disegno è nel metodo paint anziché in paintComponent.
  7. Esempio : import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JApplet; public class RectangleApplet extends JApplet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g;

Rectangle box = new Rectangle(5, 10, 20, 30); g2.draw(box); box.translate(15, 25); g2.draw(box); } }

  1. HTML per visualizzare l’applet :
Two rectangles

Forme grafiche

  1. Rettangoli, ellissi e linee : o Rettangoli: Rectangle. o Ellissi: Ellipse2D.Double. o Linee: Line2D.Double.
  2. Disegnare testo : g2.drawString("Message", 50, 100);
  3. Colore : o Colori standard come Color.BLUE. o Creazione di colori personalizzati con combinazioni RGB: Color magenta = new Color(1.0F, 0.0F, 1.0F); g2.setColor(magenta); g2.fill(rectangle); Esempio: Disegno di autoClasse Car :

Riga 1-3: Importazioni necessarie per usare Graphics, Graphics2D e la classe JComponent, utile per creare componenti personalizzati nel framework Swing.  Riga 6: Definizione della classe CarComponent, che estende JComponent.  Riga 8-20: Il metodo paintComponent(Graphics g) disegna due automobili nel pannello. o Riga 10: Converte l'oggetto Graphics in un oggetto Graphics2D, che offre funzionalità di disegno più avanzate. o Riga 11: Crea una macchina (Car) in alto a sinistra (coordinate (0,0)). o Riga 13-14: Calcola le coordinate in basso a destra del pannello per posizionare la seconda macchina. o Riga 16: Crea un'altra macchina posizionata in basso a destra. o Riga 18-19: Chiama il metodo disegna per disegnare entrambe le automobili. File Car.java

Parte 2: Ricevere Input e Disegnare un Quadrato (ColorViewer.java e ColoredSquareComponent.java) File ColorViewer.java

Riga 1-3: Importa classi per colori, finestre grafiche (JFrame) e per richiedere input tramite finestra di dialogo (JOptionPane).  Riga 7-37: Codice principale per creare una finestra e disegnare un quadrato colorato: o Riga 21-28: Richiede all'utente valori per rosso, verde e blu (da 0 a 1), quindi li converte in un oggetto Color. o Riga 32: Crea un componente (ColoredSquareComponent) con il colore specificato. o Riga 34: Aggiunge il componente al frame. o Riga 36: Visualizza la finestra. File ColoredSquareComponent.java

Riga 10-19: Definizione della classe che disegna un quadrato colorato. Il costruttore accetta il colore come parametro.  Riga 21-41: Metodo paintComponent(Graphics g): o Riga 27: Imposta il colore del pennello. o Riga 34-38: Calcola le coordinate per posizionare il quadrato al centro e lo disegna. Parte 3: Calcolo e Disegno delle Intersezioni (IntersectionViewer.java, IntersectionComponent.java e LabeledPoint.java) File IntersectionViewer.java

Riga 6-23: Richiede all'utente un valore per la linea verticale x e visualizza la finestra con il disegno: o Riga 16: Usa JOptionPane per ricevere l'input dell'utente e convertirlo in double. o Riga 18: Crea un componente IntersectionComponent con il valore di x. o Riga 20: Aggiunge il componente alla finestra. File IntersectionComponent.java

Riga 17-20: Costruttore che accetta il valore x della linea verticale.  Riga 22-54: Metodo paintComponent(Graphics g): o Riga 30: Disegna un cerchio con raggio 100 e centro (100, 100). o Riga 36: Disegna una linea verticale nella posizione specificata dall'utente. o Riga 40-46: Calcola i punti di intersezione usando l'equazione del cerchio: y=b±r2−(x−a)2y = b \pm \sqrt{r^

  • (x - a)^2}y=b±r2−(x−a) o Riga 49-53: Crea due oggetti LabeledPoint per disegnare i punti di intersezione.

File LabeledPoint.java