Graphics Disegno a mano libera.

Slides:



Advertisements
Presentazioni simili
Java e le interfacce grafiche
Advertisements

Unit à E4 Applet. Obiettivi Saper progettare e realizzare Applet Java allinterno di pagine HTML Comprendere le interazioni tra il browser e lapplet Saper.
Applet Java.
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Il linguaggio java Esercitazioni del corso di Sistemi Informativi
SISSIS MODULO DI JAVA PER LA CLASSE IV DELL’ITI
Fondamenti di Informatica
GUI Graphical Users Interfaces
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Elementi di programmazione grafica
Elementi di programmazione grafica
Programmazione ad Eventi
Terza Lezione: Capire l'informazione geografica I dati associati Selezionare elementi a partire dalla loro posizione e dal valore dei dati associati Personalizzare.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Swing e la programmazione a eventi
Overriding.
Grafica 2D in Java IGEA
Grafico di funzione Disegna la Matematica.
1 Eventi/2 Più movimento alle classi. 2 Eventi Java Modo per intercettare il verificarsi di certe condizioni / azioni e fare in modo che venga eseguito.
Soluzione Esercizio - Classe Vettore
Esercizi di grafica ….
1 Grafica ed eventi/2 Più movimento alle classi. 2 Esercizio n.1 Realizzare una applicazione che permette il trascinamento di una ellissi allinterno di.
Più movimento alle classi
Gestione eventi esercitazione n aprile 2006.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Progetto di applicazioni grafiche. Disegno di forme complesse Prassi : un classe per ciascuna forma Progetta la forma individuando le componenti base.
Programmazione ad Oggetti AA 2011– Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di.
Ping Pong. PingPongComponent.java Interfaccia pubblica della componente public class PingPongComponent extends JComponent { // crea una component da includere.
Capitolo 2 Utilizzare oggetti
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
JAVA E LA GRAFICA L’architettura Java è graphics-ready
APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e.
AlgoLab - Ereditarieta' Ereditarietà e polimorfismo in Java Laboratorio di Algoritmi 02/03 Prof. Ugo de Liguoro.
Corso Informatica di Base Menu del disegno
Informatica Avanzata Trattamento di Foto e Immagini Digitali
1 Interfacce e polimorfismo Sandro Pedrazzini Approfondimento Interfacce e polimorfismo.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Esercitazione Ereditarietà Polimorfismo. Entita’ Geometrica PuntoCerchioPoligono TriangoloQuadrilatero Rettangolo Quadrato.
Colori e Font in java.
Word: gli strumenti di formattazione
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Timer Animazioni.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Programmazione in Java
Java terzo contatto Swing Java.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Esercitazione  obiettivo: scrivere una applicazione per il gioco “Centra Bersaglio”  metodo individuazione e definizione delle classi necessarie.
Temp. Esercizio DataSet Generare 100 numeri interi casuali tra 1 e Visualizzare la loro media e il valore massimo. A questo scopo realizzare la.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione sull’ ordinamento 20 maggio 2003
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
1 Java primo contatto Quando le classi fanno la differenza …
ESERCITAZIONE Problema Scrivere una funzione che scambi due interi non opera su oggetti  funzione statica scritta dentro a una classe contenitore.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
Fondamenti di informatica T-A Esercitazione 3 : Classi, metodi, visibilità, metodi statici AA 2012/2013 Tutor : Domenico Di Carlo.
12/08/02Introduzione 1 Introduzione a Java La programmazione Il linguaggio Java Primi programmi.
Stringhe in Java. Definire una stringa. Definire una stringa in Java Il modo più semplice e diretto per creare un oggetto di tipo String è assegnare alla.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Introduzione alle Classi e agli Oggetti in Java 1.
Paradigma di programmazione event-driven
Transcript della presentazione:

Graphics Disegno a mano libera

Tornando ai JFrame Tempo 20 minuti

Esercizio su JFrame – le dimensioni 420x25 100x25 300x25 150x25

Soluzione import javax.swing.*; import java.awt.*; public class NewFinestra{ public static void main(String[] args) { JFrame f = new JFrame(); JPanel p = new JPanel(); f.setContentPane(p); f.setSize(420, 130); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel labelLogin = new JLabel("Login"); labelLogin.setPreferredSize(new Dimension(100,25)); p.add(labelLogin); labelLogin.setForeground(Color.BLUE); JTextField textfieldLogin = new JTextField(); p.add(textfieldLogin); textfieldLogin.setPreferredSize(new Dimension(300,25)); JLabel labelPassword = new JLabel("Password"); labelPassword.setPreferredSize(new Dimension(100,25)); labelPassword.setForeground(Color.MAGENTA); p.add(labelPassword); JTextField textfieldPassword = new JTextField(); p.add(textfieldPassword); textfieldPassword.setPreferredSize(new Dimension(300,25)); final JButton button = new JButton("Invia"); p.add(button); button.setBackground(Color.ORANGE); button.setPreferredSize(new Dimension(150,25)); f.setVisible(true); }

Per casa Aggiungere una nuova riga con una JCheckBox con la scritta “login sicuro” di colore verde Aggiungere un secondo pulsante accanto al primo con sfondo rosso e la scritta “cancella” Modificare il colore del textfield in modo che i caratteri della login siano blu e quelli della password magenta Cambiare il colore della selezione della textfield della password giallo con sfondo rosso

Introduzione Utilizzo dell’oggetto Graphics e Graphics2D per il disegno Realizzazione di un pannello per il disegno Override del metodo paintComponent(Graphics) Utilizzo delle primitive di disegno Aggiunta del pannello in un JFrame

JComponent Finora i componenti grafici utilizzati erano già definiti nelle Swing di Java JButton, JPanel, JCheckBox, JTextField Estendono tutti da JComponent Il modo in cui vengono disegnati è definito nel metodo paintComponent(…) – ciascuna classe sovrascrive l’implementazione di JComponent secondo le proprie esigenze Creiamo un nostro componente grafico personalizzato Il disegno del componente lo effettuiamo attraverso primitive geometriche di disegno

Come si disegna un JComponent Si definisce una classe che estende JComponent Sovrascittura del metodo public void paintComponent(Graphics g) Chiamata a super.paintCompoenent(g) Cast a Graphics2D Utilizzo delle primitive di disegno Utilizzo del nuovo componente in modo analogo agli altri componenti Sving (JPanel, JButton etc) Per esempio setContentPane(…) in un JFrame Quando viene invocato il metodo paintComponent e da chi? Prova a fare il ridimensionamento della finestra

Graphics2D public abstract void draw(Shape s) Disegna il contorno dell’oggetto Shape specificato. public abstract void fill(Shape s) Disegna l’interno dell’oggetto Shape specificato. public abstract void drawString(String str, int x, int y) Disegna un stringa public abstract void setStroke(Stroke s) Imposta il pattern di disegno. public abstract void setColor(Color c) Imposta il Colore del disegno public abstract void setPaint(Paint paint) Evoluzione del precedente, permette effetti di colore evoluti

Shape (forme geometriche) Ellipse2D.Double (double x, double y, double w, double h) Rectangle2D.Double(double x, double y, double w, double h) Line2D.Double (double x1, double y1, double x2, double y2) RoundRectangle2D.Double (double x, double y, double w, double h, double arcw, double arch) arcw, arch: larghezza e altezza dell’arco Path2D.Double() void moveTo(double x, double y) void lineTo(double x, double y) void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)  Javadoc di Shape per conoscere altre sottoclassi

Stroke (pattern delle linee) BasicStroke (float width) Utilizzato (per ora) per definire la dimensione della linea

Colori per il disegno e il riempimento Il metodo setColor(…) permette di impostare un colore uniforme Il metodo setPaint(…) invece utilizza l’interfaccia Paint Color GradientPaint GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2) GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2, boolean cyclic) RadialGradientPaint RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors) Radius: raggio del gradiente fractions: valori tra 0 e 1 (crescenti) pari al numero di colori che identifica le percentuali dei vari colori usati - con 2 colori {0f, 0.5f} c’e’ una distribuzione uniforme  Aspettare gli array

Math.random() (java.util.*) Genera un numero random tra 0 e 1 (escluso) public static double random() ritorna un valore double maggiore o uguale a 0.0 e minore di 1.0. Come fare a generare un numero tra 0 e MAX? Math.random()*MAX E per ottenere un valore Intero? (int)Math.random()*MAX

Esercizio Disegnare in una finestra 800x800 due cerchi uno verde(pieno) e uno rosso (solo contorno)

Soluzione import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class Disegno extends JComponent{ public Disegno() { } public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2=(Graphics2D)g; //qui metto il mio disegno Ellipse2D.Double cerchio= new Ellipse2D.Double(100,50,20,20); g2.setColor(Color.GREEN); g2.fill(cerchio); Ellipse2D.Double cerchio2= new Ellipse2D.Double(300,300,20,20); g2.setStroke(new BasicStroke(4)); g2.setColor(Color.RED); g2.draw(cerchio2); public static void main(String[] aaa){ JFrame f=new JFrame(); Disegno d=new Disegno(); f.setContentPane(d); f.setSize(800,800); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Esercizio per casa Disegnare una Mongolfiera (vedi figura pagina successiva) Utilizzare le primitive di disegno fill e draw sulle Shape viste a lezione Utilizzare setColor(…) per impostare il colore di disegno Utilizzare drawString per la stampa del testo

Esercizio per casa/2 Informatica Grafica

Disegnare Disegnare in una finestra 800x800 i seguenti oggetti in posizione x,y random all’interno della area specificata con colori differenti a piacere 10 cerchi di raggio 20 10 rettangoli 20x10 10 linee in posizione (x1,y1),(x2,y2) random 10 rettangoli con sfondo e bordo di colori differenti e dimensioni 20x20 Un poligono a 30 punti random Eseguire un passo alla volta e vederne il risultato

… continua Modificare il disegno in modo da utilizzare colori sfumati Poi aggiungere a dx il sole Informatica Grafica

Esercizio per casa Disegnare una strada con 5 Camion uno di seguito all’altro