Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione...

11
Progettazione dei Sistemi Interattivi (a.a. 2004/0 5) - Lezione 8 1 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque colore. Il sistema trova la migliore corrispondenza entro i limiti del dispositivo hardware automaticamente Le caratteristiche di un colore sono incapsulate nella classe Color, che fornisce una gamma di metodi per creare e manipolare colori RGB e HSB

Transcript of Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione...

Page 1: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 1

Gestione dei colori

La gestione dei colori in AWT consente di specificare un qualunque colore. Il sistema trova la migliore corrispondenza entro i limiti del dispositivo hardware automaticamente

Le caratteristiche di un colore sono incapsulate nella classe Color, che fornisce una gamma di metodi per creare e manipolare colori RGB e HSB

Page 2: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 2

Gestione dei colori (esempio)

import java.awt.*;

public class Colori extends Frame { public void paint (Graphics g) {

Color c1 = new Color (255, 100, 100);Color c2 = new Color (100, 255, 100);g.setColor(c1);g.drawLine(20, 15, 50, 70);g.setColor(c2);g.fillRect(40, 35, 50, 20);

}}

Page 3: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 3

Gestione dei font

L’AWT supporta diversi tipi di caratteri (font).

Le caratteristiche di un font sono incapsulate in Font, che fornisce una gamma di metodi per creare e manipolare fonts. Inoltre AWT definisce la Classe FontMetrics per gestire informazioni legate ad oggetti di tipo Font

import java.awt.*;

public class Scritte extends Frame { public void paint (Graphics g) {

Font carat = new Font (“Times”, Font.BOLD, 12);g.setFont(carat);g.drawString(“Compare questa scritta”, 50, 70);

}}

Page 4: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 4

FontMetrics

Testo che appare(10, 20)

ascendente

discendente

rigo di basealtezza

risultato di drawString(“Testo che appare”, 10, 20)

Page 5: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 5

FontMetrics

import java.awt.*;

public class ScritteCentrate extends Frame { public void paint (Graphics g) { dimension d = this.size( ); g.setColor(Color.white); g.fillRect(0, 0, d.width, d.height); g.setColor(Color.black); g.setFont(new Font(“Helvetica”, Font.bold, 18)); drawCenteredString(“Testo centrato”, d.width, d.height, g); } public void drawCenteredString(String s, int w, int h, Graphics g) { FontMetrics fm = g.getFontMetrics( ); int x = (w - fm.StringWidth(s))/2; int y = fm.getAscent( ) + (h - fm.getAscent( ) - fm.getDescent( ))/2; g.drawString(s, x, y); } }

Page 6: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 6

Il sistema degli eventi

Disegnare oggetti grafici all’interno di finestre è solo una parte della faccenda. Per realizzare un’interfaccia grafica interattiva è necessario gestire la comunicazione utente/applicazione

In JAVA ogni azione dell’utente attraverso l’uso del mouse e della tastiera genera un evento, che è in effetti un oggetto che porta informazioni sul tipo di evento generato e che viene utilizzato dal codice scritto per gestire quel tipo di evento

sorgente di un evento: l’oggetto che lo genera (es., bottoni, menù)

listener di un evento: l’oggetto che risponde all’evento

Page 7: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 7

Source e listener

Sorgentedi eventi

Listenerdi eventi

Produce eventi e li invia aglioggetti che si sono registratinella sua lista di listener

Si registra nella lista della sorgente di eventi cui è interessato, e ricevel’evento quando esso è generato

evento

Page 8: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 8

Esempio di gestione degli eventiimport java.awt.*;import java.awt.event.*;

class FrameEventi extends Frame implements ActionListener {private int clic;private Button bott;private Label lab;

FrameEventi(String s) { super(s); clic = 0; bott = new Button(“Premere qui”); lab = new Label(“Inizio”); bott.addActionListener(this); add(bott); add(lab);}

public void actionPerformed(ActionEvent a) { clic++; lab.setText(“ “ + clic);}

}

Page 9: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 9

Classi di eventi in java.awt.event

• ActionEvent associati a bottoni, liste, menù, campi di testo

• AdjustmentEvent associati a barre di scorrimento

• ItemEvent associati a scelte in checkbox e liste

• TextEvent associati a testi in campi di testo

• ComponentEvent associati a spostamenti o dimensionamenti di componenti

• KeyEvent associati alla pressione o al rilascio di tasti

• MouseEvent associati allo spostamento del mouse e al cliccare

Page 10: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 10

Interfacce Listener

CLASSE DI EVENTI LISTENER INTERFACE METODI LISTENER

ComponentEvent ComponentListener componentHidden()componentMoved()componentResized()

KeyEvent KeyListener keyPressed( )keyReleased( )keyTyped( )

MouseEvent MouseListenerMouseMotionListener

mouseClicked( )mousePressed( )mouseMoved( )

WindowEvent WindowListener windowActivated( )windowClosed( )windowIconified( )

Page 11: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 8 11

Esempio: rispondere ad eventi del mouse import java.awt.*;import java.awt.event.*;

class FrameEventiMouse extends Frame implements MouseListener, MouseMotionListener {

private int lastX, lastY;

FrameEventiMouse( ) { this.addMouseListener(this); this.addMouseMotionListener(this);}

public void mousePressed(MouseEvent e) { lastX = e.getX( ); lastY = e.getY( );}

public void mouseDragged(MouseEvent e) { Graphics g = this.getGraphics( ); int x = e.getX( ); int y = e.getY( ); g.drawLine(lastX, lastY, x, y); lastX =x; lastY = y;}

}