Esempi di programmazione

Documenti analoghi
Eventi e listener per i componenti grafici

! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API

Gestione dell interattività: gli eventi

Grafica ed eventi. Più movimento alle classi

Corso sul linguaggio Java

Programmazione in Java e gestione della grafica. Lezione 21

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Java Interfaccia Grafica

Application VS Applet

/** * * Parrucci Alessandro-Dignani Silvia /12/2 */

Le Applet Java. Le Applet

Gestione degli eventi in Java

Corso sul linguaggio Java

Applicazioni grafiche e finestre

Introduzione al package grafico Swing

Applet. Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser.

APPLICAZIONI & APPLET

Unità B2 Gestione eventi 2

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Java Interfaccia Grafica

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile

La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:

interfacce ed eventi intercettare il mouse ed altri eventi

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet

Classi astratte Interfacce

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

Programmazione Java (Applicazioni e Applet )

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari

APPLICAZIONI & APPLET

Ereditarietà (ultima)

Ereditarietà (ultima)

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

Eventi di azione. // con interfaccia per eventi di azione

Programmazione orientata agli oggetti Classi astratte e interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce

JFrame. Chiusura della finestra. JFrame - Esempio. Tipologia di GUI. Linee guida. Programmazione ad Oggetti 6/12/09. finestre

public class Counter2 extends Counter { public void dec() { val--; }

Lezione n.12 LPR Informatica Applicata GUI programming

Grafico della parabola

Chiamata delle funzioni JavaScript da un applet

Programmazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota

Applet. Sommario. Programmazione in Ambienti Distribuiti. Thread Applet Wave. Applet configurabili attivi. Tris. Animazione Interazione con l HTML

Classi astratte. Master in Web Technology e Security luglio - settembre Interfacce

Appendice B - Othello come applet

Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.

AWT: Abstract Window Toolkit

Simulatore di un miscelatore di acqua

COGNOME.NOME. Matricola

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Esempio: Interfacce. Gioco Interfacce

Esempio su strutture dati dinamiche: ArrayList

Esempio: Interfacce. Gioco Interfacce

APPLET APPLICAZIONI & APPLET APPLET APPLET APPLET SWING: GERARCHIA DI CLASSI

Appunti dei corsi di

Oggetti. Definizioni di Classi II

Android. Custom View.

I costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard

Corso sul linguaggio Java

Programmazione Orientata agli Oggetti. Esercitazione: Interfacce, polimorfismo

Corso sul linguaggio Java

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Esempio 2: Subtyping

Gestione di eventi ed interfacce utente grafiche

Programmazione in rete e laboratorio

Paradigmi di programmazione (sperimentazioni)

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esercitazione n 3. Obiettivi

Restrizioni per la sicurezza

Interazioni col mondo: eventi

Programmazione orientata agli oggetti. Ivan Lanese

Corso sul linguaggio Java

Graphics. Disegno a mano libera

Note ed esercizi aggiuntivi

public BorsaStudio(String nome, String ente, int d, double r) { this.nome = nome; this.ente = ente; this.durata = d; this.

Con il pulsante Start si introducono palline che rimbalzano in un area di disegno fino a che non è terminato il loro ciclo di vita (1000 movimenti).

Campo Minato. in java

Interfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato

Polimorfismo, Relazioni e Inheritance Corso di C++ INFN LNS 13 Dicembre Corrado Santoro

Linguaggi di Programmazione I Lezione 16

Esercitazione n 6. Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java:

Corso sul linguaggio Java

Programmazione orientata agli oggetti. Ivan Lanese e Cosimo Laneve

Unità C1 Applicazioni grafiche

Questo tutorial descrive un'idea stantìa per animare l'icona di un pulsante e presenta la sua traduzione in una classe Java.

GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali

maggio 2004 Stefano Sanna - gerda@crs4.it

Definizione di classi

PROGRAMMAZIONE 2 5. Dynamic dispatch

Riassunto. GUI in Java con l AWT 1. Cos è una GUI. Oggi: GUI in Java, l AWT. GUI in Java. Un esempio. Stefano Mizzaro 1

Java e i Tipi di dati primitivi. Parte 3

Programmazione Concorrente e Distribuita

Transcript:

Esempi di programmazione Applet che disegna cerchi Costruire un'applet disegnoapplet che ad ogni pressione del mouse disegna un cerchio 1

disegnoapplet 1. Deve usare la classe Applet? NO 2. Deve estendere la classe Applet? SÌ 3. Deve importare java.applet.*? SÌ 4. Deve essere pubblica? SÌ 5. Deve avere il metodo main? NO 6. Deve avere il metodo init? S/N disegnoapplet import java.applet.*; public class disegnoapplet extends Applet { 2

Di cosa abbiamo bisogno 1. Panel? NO 2. Canvas? S/N 3. Button? NO 4. ActionListener? NO 5. MouseListener? SÌ 6. MouseMotionListener? NO /*<applet code="disegnoapplet.class" width="400" height="400"></applet>*/ import java.awt.*; import java.awt.event.*; import java.applet.*; public class disegnoapplet extends Applet { public void init() { this.addmouselistener(new aggiungicerchio()); class aggiungicerchio extends MouseAdapter { public void mouseclicked(mouseevent e) { 3

Come fare?? L'unico modo che conosciamo per disegnare un cerchio è usare il metodo drawoval della classe Graphics Per far disegnare sull'applet sovrascriviamo il metodo paint L'applet deve disegnare un cerchio in ogni punto in cui è stato cliccato Deve "tenere a mente" i punti in cui si clicca Ogni volta che si fa click occorre aggiungere un nuovo punto e richiamare paint public class disegnoapplet extends Applet { private final int MAX_ELEM = 10; //massimo numero di cerchi private final int R = 15; //raggio int[] x = new int[max_elem]; //coordinate dei cerchi da disegnare int[] y = new int[max_elem]; int n = 0; //numero cerchi da disegnare... public void paint(graphics abc) { for (int i = 0; i<n; i++) abc.drawoval(x[i]-this.r,y[i]-this.r,this.r*2,this.r*2); void add(int x, int y) { if (this.n < this.max_elem) { this.x[n] = x; this.y[n] = y; this.n++; class aggiungicerchio extends MouseAdapter { public void mouseclicked(mouseevent e) { disegnoapplet da = (disegnoapplet)e.getsource(); da.add(e.getx(),e.gety()); da.repaint(); 4

Ambiente esterno (appletviewer) mouse disegnoapplet X[,,, ] Y[,,, ] n paint aggiungicerchio mouseclicked add Ambiente esterno (utente) Memorizzare una coppia di interi Per memorizzare una coppia possiamo usare 2 variabili int Possiamo definire una classe (meglio!) class coppiaint { int x; int y; coppiaint(int x, int y) { this.x = x; this.y = y; 5

Memorizzare 2 coppie di interi Possiamo usare 4 variabili int Possiamo usare 2 vettori di 2 int int[] x = new int[2]; int[] y = new int[2]; x[0] = 2; y[0] = 3; System.out.println(x[0]); Possiamo usare 1 vettore di coppie di interi coppiaint coppiaint[] c = new coppiaint[2]; c[0] = new coppiaint(2,3); System.out.println(c[0].x); Per memorizzare "tante" coppie di interi? Possiamo usare "tante" variabili int? Non sappiamo quante. Possiamo usare 2 vettori di int? Non sappiamo quanto grandi. Possiamo usare un vettore di coppie di interi coppiaint? Non sappiamo quanto grande. Creiamo una nuova classe coppiaintperlista inizio coppiaint c coppiaint c coppiaint c successivo successivo successivo null 6

coppiaintperlista class coppiaintperlista { coppiaint c; coppiaintperlista succ; coppiaintperlista(coppiaint c) { this.c = c; this.succ = null; listacoppie class listacoppie { coppiaintperlista inizio; listacoppie(coppiaintperlista prima) { this.inizio = prima; public void aggiungi(coppiaintperlista c) { c.succ = this.inizio; this.inizio = c; public coppiaintperlista primacoppia() { return inizio; public void togli() {this.inizio = this.inizio.succ; 7

Memorizzare 4 coppie di interi coppiaint c = new coppiaint(2,3); coppiaintperlista cpl = new coppiaintperlista(c); listacoppie lc = new listacoppie(cpl); lc.aggiungi(new coppiaintperlista(new coppiaint(1,2))); lc.aggiungi(new coppiaintperlista(new coppiaint(1,7))); lc.aggiungi(new coppiaintperlista(new coppiaint(9,5))); System.out.println(lc.primaCoppia().c.x); //stampa 9 System.out.println(lc.primaCoppia().succ.c.y); //stampa 7 Memorizzare 100 coppie di interi? Sempre allo stesso modo con listacoppie In realtà la struttura dati assomiglia, come funzionamento, più ad una Attenzione! Il metodo togli può dare errore. Quando? 8