Le Applet Java. Le Applet
|
|
|
- Lia Massari
- 9 anni fa
- Visualizzazioni
Transcript
1 Le Applet Java ed anche i gestori del layout ed altri eventi ed altro ancora Le Applet Sono delle piccole applicazioni Non sono pensate per essere eseguite indipendentemente (non vengono lanciate con il main), ma da un programma esterno (browser web, appletviewer, etc.) java.applet.applet è una sottoclasse di java.awt.panel Restrizioni di sicurezza!! 1
2 Esempio /*<APPLET CODE="CiaoATutti.class" WIDTH=150 HEIGHT=25></APPLET>*/ import java.applet.*; import java.awt.*; public class CiaoATutti extends Applet { public void paint(graphics g) { g.drawstring("ciao a tutti!", 5, 25); Per scrivere un'applet Occorre estendere la classe java.applet.applet Occorre sovrascrivere alcuni dei suoi metodi Nell'esempio abbiamo sovrascritto il metodo paint che viene invocato quando l'applet viene mostrata sullo schermo 2
3 Per visualizzare un'applet Occorre compilare il file.java (come sempre) Occorre un browser web In questo caso ci serve un file html Possiamo usare anche l'appletviewer In questo caso possiamo inserire il codice html come commento all'interno del file.java (come nell'esempio) Esempio Compilazione: javac CiaoATutti.java Esecuzione appletviewer CiaoATutti.java ma anche appletviewer CiaoATutti.html oppure anche appletviewer CiaoATutti.txt All'appletviewer basta che sia un file di testo con scritto da qualche parte <applet code="ciaoatutti.class" width=150 height=25></applet> 3
4 La vita di un'applet init() start() paint() stop() destroy() Tutti i metodi sono vuoti tranne paint che viene ereditato da Component Parametri Possiamo fornire dei parametri ad un'applet /* <applet code="es06.class" width="100" height="100"> <param name="nomebottone" value="abc"> </applet> */ import java.awt.*; import java.applet.*; public class es06 extends Applet { public void init() { String s = this.getparameter("nomebottone"); this.add(new Button(s)); 4
5 Parametri 2 I parametri si passano all'applet con il tag <param name="npar" value="vpar"> Il metodo getparmeter(string npar) ritorna il valore dell'attributo value Gestori del Layout Invece di posizionare i componenti utilizzando un sistema di coordinate, in Java è possibile (e preferibile) associare al Container che contiene i vari componenti un oggetto LayoutManager che si occupa di posizionare e dimensionare i componenti secondo delle regole stabilite 5
6 FlowLayout Il gestore del layout FlowLayout è quello predefinito per i Panel e le Applet Posiziona gli elementi come se fossero le parole di un paragrafo con allineamento centrato: un flusso da sinistra verso destra È possibile modificare l'allineamento e lo spazio orizzontale e verticale tra gli elementi Esempio FlowLayout import java.awt.*; import java.applet.applet; public class ex01 extends Applet { public void init() { add(new Button("Ok")); add(new Button("Apri")); add(new Button("Chiudi")); 6
7 Come si cambia il gestore del layout La classe Container (e quindi tutte le sottoclassi) ha il metodo setlayout(layoutmanager m) Es: a1.setlayout(new FlowLayout()) imposta un FlowLayout manager come gestore per il Container a1 a2.setlayout(new FlowLayout(FlowLayout.LEFT)) come prima, ma con allineamento a sinistra a3.setlayout(new FlowLayout(FlowLayout.RIGHT,20,40)) come prima, ma con allineamento a destra, distanza orizzontale di 20 e distanza verticale di 40 BorderLayout È il gestore predefinito per i Frame Posiziona al massimo 5 elementi in 5 posizioni: NORTH, EAST, SOUTH, WEST, CENTER I componenti vengono "stirati" per occupare tutto lo spazio a disposizione 7
8 Esempio BorderLayout import java.awt.*; import java.applet.applet; public class ex02 extends Applet { public void init() { this.setlayout(new BorderLayout()); add(new Button("Ok"),BorderLayout.CENTER); add(new Button("Apri"),BorderLayout.EAST); add(new Button("Chiudi"),BorderLayout.NORTH); GridLayout Posiziona gli elementi in una griglia La dimensione della griglia viene definita con il costruttore GridLayout(int rows, int cols) I componenti vengono "stirati" per occupare tutto lo spazio a disposizione È possibile indicare nel costruttore anche lo spazio orizzontale e verticale (come in FlowLayout) 8
9 Esempio GridLayout import java.awt.*; import java.applet.applet; public class ex03 extends Applet { public void init() { this.setlayout(new GridLayout(2,2,10,20)); add(new Button("Ok")); add(new Button("Apri")); add(new Button("Chiudi")); Movimento del Mouse Un ascoltatore degli eventi relativi al movimento del mouse deve implementare l'interfaccia MouseMotionListener Ha due metodi: public void mousedragged(mouseevent e) public void mousemoved(mouseevent e) Esiste anche un adattatore MouseMotionAdapter 9
10 Eventi della tastiera L'interfaccia KeyListener definisce i metodi per gestire gli eventi della tastiera public void keytyped(keyevent e) public void keypressed(keyevent e) public void keyreleased(keyevent e) Esiste anche un adattatore KeyAdapter Focus Un componente ha il focus quando è pronto per ricevere l'input (ad esempio quando si clicca su una casella di testo) L'interfaccia FocusListener definisce i metodi per gestire l'acquisto e la perdita del focus void focusgained(focusevent e) void focuslost(focusevent e) Esiste l'adattatore FocusAdapter 10
11 Euro convertitore Obiettivo: scrivere un'applet che permetta di fare le conversioni lire euro e viceversa Euro convertitore 2 (componenti) Per prima cosa pensiamo alla parte grafica, poi passeremo alla gestione degli eventi Abbiamo bisogno di Un'etichetta (con la scritta "Euro Convertitore") Due caselle di testo e due etichette, una con la scritta "lire" e l'altra con la scritta "euro" 11
12 Euro convertitore 3 /*<applet code="euroconvertitore.class" width="380" height="100"> </applet>*/ import java.awt.*; import java.applet.*; public class euroconvertitore extends Applet { public void init() { this.add(new Label("Euro Convertitore")); TextField lire = new TextField(10); TextField euro = new TextField(10); this.add(new Label("Lire")); this.add(lire); this.add(new Label("Euro")); this.add(euro); Euro convertitore 4 (layout) Per aggiustare il layout impostiamo il gestore a BorderLayout Aggiungiamo a north un Panel (che verrà "stirato") e a questo panel aggiungiamo la Label "Euro Convertitore Aggiungiamo un altro Panel al centro e poi a questo le restanti due etichette e caselle di testo 12
13 Euro convertitore 5 public void init() { this.setlayout(new BorderLayout()); Panel p = new Panel(); Panel p2 = new Panel(); p2.add(new Label("Euro Convertitore")); this.add(p2, BorderLayout.NORTH); this.add(p, BorderLayout.CENTER); TextField lire = new TextField(10); TextField euro = new TextField(10); p.add(new Label("Lire")); p.add(lire); p.add(new Label("Euro")); p.add(euro); Euro convertitore 6 (eventi) Vogliamo che quando si scrive nella casella di testo delle lire automaticamente venga aggiornata la casella degli euro L'evento da gestire è il cambiamento del testo e quindi dobbiamo scrivere un TextListener 13
14 Euro convertitore 7 class convertitore implements TextListener { double tasso; TextComponent out; convertitore(textcomponent output, double tasso) { this.out = output; this.tasso = tasso; public void textvaluechanged(textevent e) { TextComponent c = (TextComponent)e.getSource(); double d = 0; String s = ""; d = Double.parseDouble(c.getText()); s += (d*tasso); out.settext(s); Euro convertitore 8 public class euroconvertitore extends Applet { public void init() { TextField lire = new TextField(10); TextField euro = new TextField(10); convertitore l2e = new convertitore(euro,(1/ )); convertitore e2l = new convertitore(lire, ); lire.addtextlistener(l2e); euro.addtextlistener(e2l); 14
15 Euro convertitore 9 (problemi) Non abbiamo tenuto conto di Errori di calcolo ed arrotondamenti Errori inseriti dall'utente Ogni volta che si cambia il testo in una casella viene lanciato un TextEvent che viene catturato da un TextListener il quale a sua volta cambia il testo nell'altra casella che, a sua volta, lancerà un altro TextEvent e così via in un loop infinito Euro convertitore 10 (loop) Per risolvere il problema del loop di eventi facciamo in modo che la classe ascoltatore cambi il testo della casella di output, solo se oltre ad avere il testo modificato ha anche il focus 15
16 Euro convertitore 11 class convertitore implements TextListener, FocusListener { double tasso; TextComponent out; boolean editing = false; public void textvaluechanged(textevent e) { if (editing) out.settext(s); public void focusgained(focusevent e) { editing = true; public void focuslost(focusevent e) { editing = false; Euro convertitore 12 public class euroconvertitore extends Applet { public void init() { lire.addtextlistener(l2e); euro.addtextlistener(e2l); lire.addfocuslistener(l2e); euro.addfocusistener(e2l); 16
17 Euro convertitore 13 (errori) Se l'utente sbaglia ad inserire i dati il metodo Double.parseDouble lancia un'eccezione NumberFormatException. Catturiamo l'eccezione e scriviamo "errore" nella casella di testo Infine scriviamo una funzione per arrotondare ad un certo numero di cifre decimali Euro convertitore 14 class convertitore implements TextListener, FocusListener { public void textvaluechanged(textevent e) { double d = 0; String s = ""; try { d = Double.parseDouble(c.getText()); s += (this.arrotonda(d*tasso,16)); catch(numberformatexception ex) {s = "errore!"; double arrotonda(double d, int p) { return Math.rint(d*Math.pow(10,p))/Math.pow(10,p); 17
Esempi di programmazione
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
I Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni
I Layout Manager di java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Creazione di interfacce complesse con i layout manager La posizione di un componente aggiunto
L Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete
Le GUI in Java L Abstract Windowing Toolkit Fino ad ora abbiamo usato le classi del pacchetto JavaBook per realizzare semplici interfacce grafiche (GUI) Si tratta di classi facili da usare...... ma che
! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API
Riassunto Applet (e altro dell AWT ) Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ [email protected] Programmazione, lezione 22 19 maggio
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
Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro [email protected] Programmazione, lezione 23 15 febbraio
Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Java Applet 1 Application VS Applet Una
La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:
Esercitazione N4: Costruzione di una applicazione GUI utilizzando i componenti di base per realizzare l input e l output e cioè Label, TextBox, TextArea Button e Panel (Pannelli) I componenti che utilizzeromo
Riassunto. GUI in Java con l AWT 1. Oggi: GUI in Java, l AWT. Oggi. GUI in Java. Cos è una GUI. Stefano Mizzaro 1
Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ [email protected] Programmazione, lezione 20 20 novembre
TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet Prof. Franco Zambonelli Lucidi realizzati in collaborazione
Eventi e listener per i componenti grafici
Eventi e listener per i componenti grafici Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Eventi e listener Eventi e listener (ascoltatori) sono
Java Interfaccia Grafica
Java Interfaccia Grafica Testi di consultazione: a) core Java 1.1 (Volume I Fundamentals) Cay S. Horstmann, Gary Cornell, Prentice Hall, 1997. b) Java 1.2 Unleashed, Jamie Jaworski, Sams Publishing, 1998.
APPLICAZIONI & APPLET
APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e trae forza, dal concetto di applet come piccola (?)
Programmazione in rete e laboratorio
Programmazione in rete e laboratorio 2001-02 JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java
Programmazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota
Programmazione ad Oggetti Interfacce grafiche V 1.2 Marco Torchiano 2005 JFrame JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti
Gestione dell interattività: gli eventi
Gestione dell interattività: gli eventi Gli eventi sono una modalità di comunicazione tra l utente (sistema) e il programma in esecuzione. Tipi di eventi: Input da parte dell utente: pressione del(i) bottone(i)
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 1 Introduzione alle applet 1 Prerequisiti Architettura client/server Elementi di base HTML Programmazione Java Utilizzo package awt di Java 2 1 Introduzione
Java Interfaccia Grafica
Java Interfaccia Grafica Testi di consultazione: a) core Java 1.1 (Volume I Fundamentals) Cay S. Horstmann, Gary Cornell, Prentice Hall, 1997. b) Java 1.2 Unleashed, Jamie Jaworski, Sams Publishing, 1998.
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato
Programmazione Java (Applicazioni e Applet )
Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.
GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali
GUI e java swing Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Elmenti della GUI Eventi e listener contenitori componenti layout manager caratteristiche
Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce
Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia
Campo Minato. in java
Campo Minato in java Il gioco campo rettangolare o quadrato suddiviso in tanti quadratini Il giocatore deve sminare il campo, cliccando sui quadratini, col tasto destro o col tasto sinistro il gioco cliccando
AWT: Abstract Window Toolkit
AWT: Abstract Window Toolkit E una libreria che offre le componenti GUI essenziali Tutte le componenti GUI che sono visualizzabili sono sottoclassi della classe astratta Component Container è una sottoclasse
GESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
Introduzione al package grafico Swing
Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti
interfacce ed eventi intercettare il mouse ed altri eventi
interfacce ed eventi intercettare il mouse ed altri eventi interfacce: premessa il termine "interfaccia" occorre in Java con due significati, collegati ma distinti 1. interface, parola chiave di Java e
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE INTRODUZIONE L interfaccia grafica del programma è composta dai cosiddetti componenti GUI (Graphics User Interface); essi sono dei componenti che servono
Esecuzioni client-side: le Applet
Esecuzioni client-side: le Applet Introduzione Le Applet sono programmi Java che vengono eseguiti all interno dei browser Utente finale BROWSER HTML doc (visualizzato) Applet HTTP Requests HTTP Responses
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
In alcune applicazioni è necessario mostrare le informazioni in formato tabellare. Mario Bianchi Via Roma, /
JTable In alcune applicazioni è necessario mostrare le informazioni in formato tabellare Nome Cognome Indirizzo Telefono Mario Bianchi Via Roma, 12 059/1111111 Franco Rossi Via Milano, 33 059/2222222 119
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
ESERCIZIO 1 ESERCIZIO 1
Si crei un progetto Java che mappi un semplice sistema medico. Il progetto deve contenere tre classi: una per i pazienti, una per le patologie e una per il main. Inoltre si definiscano le seguenti eccezioni:
Alessandro De Luca. Lezione, 13 maggio 2015
Basi Basi di di dati dati ee sistemi sistemi informativi informativi II mod.laboratorio mod.laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, Introduzione a Java Swing
Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini...
Interfacce grafiche Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Alcuni componenti ne contengono altri (ad esempio le finestre), e sono detti contenitori.
18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Java GUI. Swing Java
Java GUI Swing Java 1 Introduzione n Componenti grafici di Java (Swing) Utilizzo di alcuni dei metodi per creare semplici finestre grafiche Accesso ai JavaDoc per usare meglio gli oggetti già pronti n
Proprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per
Appendice B - Othello come applet
Appendice B - Othello come applet Il gioco dell'othello, detto anche Reversi, consiste in una scacchiera di 64 caselle, 8 x 8, su cui all'inizio si trovano quattro pedine, due nere e due bianche, vedi
BorderLayout. 1 Gestori di Layout http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html (guida visuale)
Posizionamento diretto di un elemento GUI o tramite gestori di layout Nel posizionamento diretto (dipendente dalle impostazioni grafiche del sistema) non abbiamo bisogno di un gestore di layout (layout
Esercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
