Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 71 Uso dellinterfaccia Runnable interface Runnable { public void run ( ); } Linterfaccia.

Slides:



Advertisements
Presentazioni simili
UNO STRUMENTO PER INTERAGIRE CON GLI UTENTI DELLE PAGINE WEB
Advertisements

APRIRE PROGRAMMA DI POSTA OUTLOOK EXPRESS
Interazione Uomo - Macchina
MODULO 3 – ELABORAZIONE TESTI
Java e le interfacce grafiche
Applet Java.
Power Point Lezione breve.
Comunicare con la posta elettronica (7.4)
CONOSCIAMO IL WINDOWS '95.
Java: programmazione concorrente con condivisione di memoria
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
GUI Graphical Users Interfaces
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
STRUMENTI DI PRESENTAZIONE
Programmazione ad Eventi
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
word (prima lezione): sommario
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Swing e la programmazione a eventi
Più movimento alle classi
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 91 Il modello OAI (Object-Action Interface) Sintassi e semantica: la sintassi specifica.
Programmazione II: Tecniche Avanzate. (A.A. 1999/2000) - Lezione 6 1 Estensione di classi: il Contratto INTERFACCIA E REALIZZAZIONE Che cosa realizza una.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
IL CONCETTO DI PACKAGE Una applicazione è spesso composta di molte classi (eventualmente correlate) Un package è un gruppo di classi che costi- tuiscono.
JAVA E LA GRAFICA L’architettura Java è graphics-ready
DBMS ( Database Management System)
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Lezione 12 Riccardo Sama' Copyright Riccardo Sama' Excel.
Un report è in grado di personalizzare la stampa delle informazioni rispetto alla stampa di una tabella, di un recordset o di una maschera. I report possono.
Java Contardi Carlo A.S. 2008/09.
WORD Lezione n. 1 Aprire il programma Aprire un documento esistente
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Excel prima lezione.
Le maschere Una maschera è un oggetto del database utilizzato principalmente per l'inserimento, la visualizzazione e la modifica dei dati in un database.
Strumenti di Presentazione (Microsoft PowerPoint 2000)
Le Toolbar di default Quando avviamo Writer vengono visualizzate di default due toolbar o barre degli strumenti La toolbar superiore è definita Standard.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Microsoft Access Chiavi, struttura delle tabelle.
Modulo 6 Test di verifica
Aggiungiamo Elementi al Frame Per poter posizionare un elemento all'interno di un frame dobbiamo utilizzare il "layout manager". Ogni contenitore (Container)
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Introduzione a Windows Lezione 2 Riccardo Sama' Copyright  Riccardo Sama'
Prof.ssa Stella Beccaria a.s. 2013_2014
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Libreria standard.
Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.
Programmazione ad oggetti
Microsoft Word Interfaccia grafica
Word: Gli strumenti di formattazione
Lezione 23 Riccardo Sama' Copyright  Riccardo Sama' Lavorare con gli strumenti.
Microsoft Access Maschere (II).
Introduzione a Windows (Seconda parte) Lezione 3 Riccardo Sama' Copyright 
Lezione 11 Riccardo Sama' Copyright  Riccardo Sama' Excel.
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Lezione 19 Riccardo Sama' Copyright  Riccardo Sama' Access.
Microsoft Word Lezione 6 Riccardo Sama' Copyright  Riccardo Sama'
Lezione 20 Riccardo Sama' Copyright  Riccardo Sama' PowerPoint.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
ESPANSIONE Personalizzare l’interfaccia utente 2010.
EM 09 Il foglio elettronico EXCEL. EM 09 Foglio di calcolo Una tabella in cui è possibile disporre dati, formule e valori anche con relazioni dinamiche.
ELABORAZIONE TESTI MICROSOFT WORD EM 09.
Microsoft Access (parte 3) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Lezione 16 Riccardo Sama' Copyright  Riccardo Sama' Excel: strumenti per creare.
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Transcript della presentazione:

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 71 Uso dellinterfaccia Runnable interface Runnable { public void run ( ); } Linterfaccia Runnable astrae il concetto di qualcosa che esegue codice mentre è attivo La classe Thread implementa Runnable Implementare Runnable è un altro modo di creare oggetti eseguibili, alternativo allestendere Thread – ( una classe può avere una sola superclasse ) Se robj è un oggetto Runnable, è possibile invocare il costruttore Thread(robj) che crea una nuova trama che usa il metodo run( ) di robj

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 72 class RunPingPong implements Runnable { String word; int delay; PingPong (String che_dire, int intervallo) { word = che_dire; delay = intervallo; } public void run ( ) { try { for ( ; ; ) { System.out.print (word + ); Thread.sleep (delay); } } catch (InterruptedException e) { return; } public static void main (String[ ] args) { Runnable ping = new RunPingPong (ping, 33); Runnable pong = new RunPingPong (PONG, 100); new Thread(ping).start(); new Thread(pong).start(); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 73 Campi volatile Un campo il cui valore può essere modificato concorrentemente da diverse trame va dichiarato volatile per segnalare al compilatore che trame non sincronizzate possono cambiarne il contenuto... volatile int currentValue; currentValue = 5; for ( ; ; ) { display.showValue(currentValue); Thread.sleep(1000); }...

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 74 Librerie di classi in JAVA: Packages Un package è una collezione di classi in qualche modo correlate Crescita della taglia delle applicazioni MODULARITA I packages aiutano a organizzare le classi in modo da raggruppare quelle affini Rendere tipi e componenti accessibili solamente ad un gruppo di classi Protezione rispetto a possibili collisioni di identificatori

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 75 Come creare un package package attr; class X { // campi e metodi } public class Y { // campi e metodi } interface Z { // metodi } File sorgente: MieiSorgenti.java Dichiarazione di package: tutto il codice scritto in MieiSorgenti.java fa parte del package attr Le classi utilizzabili al di fuori del proprio package sono dichiarate public

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 76 Importare un package package altro; import attr.Y; import libreria.*; class A { // campi e metodi } public class B { // campi e metodi } File sorgente: CodiceAltrui.java Importa la classe Y del package attr Importa tutto il package libreria

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 77 Nomi dei package: proprietà e convenzioni Il nome di un package è aggiunto implicitamente come prefisso a tutti i nomi dei tipi ivi definiti ESEMPIO Se in codice al di fuori del package attr voglio dichiarare una variabile del tipo Y, definito in attr, ho due alternative: 1) Scrivo la dichiarazione attr.Y varY; 2) Importo la classe attr.Y con import attr.Y; e poi scrivo la dichiarazione Y varY; E utile scegliere in modo standard i nomi di packages. Ad esempio, si può usare sempre come prefisso linverso del proprio dominio internet: it.unisa.attr Se un file sorgente non ha dichiarazione di package, il suo codice fa parte del package di default unnamed

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 78 Criteri per la creazione di packages Un package dovrebbe contenere solo classi correlate funzionalmente: tutti i membri non privati di ogni classe sono accessibili da tutte le altre classi Un package dovrebbe contenere gruppi di classi secondo una logica utile per chi volesse utilizzarle Mantenere insiemi coerenti di classi organizzate in packages aiuta a scegliere gli identificatori in modo che siano semplici e intuitivi senza correre il rischio dei conflitti

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 79 Packages forniti dal sistema JAVA java.lang language foundation classes: implementano i tipi di dati fondamentali java.io I/O class library: contiene le classi che gestiscono linput/output a basso livello, per esempio la lettura da file java.awt abstract window toolkit: contiene le classi che gestiscono la interazione con lutente attraverso finestre, bottoni, menù, etc. java.util utility class library: contiene classi di utilità per gestire strutture dati quali hash tables,vettori, stack java.net network interface class library: contiene classi per comunicare su rete java.awt.event event class library: contiene classi per la gestione degli eventi java.sql database connectivity class library: contiene classi usate per accedere ai dati contenuti in DB relazionali ed elaborarli usando il linguaggio SQL

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 710 Interfaccia utente a finestre: i contenitori Ogni componente GUI viene costruito allinterno di un contenitore Container è la classe (astratta) di base per i contenitori Window finestre di 1° livello senza cornice, titolo, menù Panel finestre annidabili Frame sottoclasse di Window di finestre con titolo, bordi, barra di menù, angoli di ridimensionamento Dialog finestre di dialogo

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 711 Impostazione della dimensione della finestra Il metodo resize( ) Al momento della sua creazione, ad una finestra vengono assegnate dimensioni di default. Con il metodo resize( ) è possibile impostare le dimensioni volute void resize (int nuovaLunghezza, int nuovaAltezza) void resize (Dimension nuoveDimensioni) un oggetto di tipo Dimension ha due campi width e height

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 712 Gli elementi dellinterfaccia utente: i controlli Programmare una interfaccia utente grafica coinvolge diversi aspetti: I controlli utilizzati ed il modo in cui essi sono realizzati Il modo in cui i controlli vengono organizzati sullo schermo Il modo in cui risponde il programma agli eventi quali ad esempio premere un tasto sulla tastiera, cliccare col mouse su un pulsante, o trascinare un oggetto grafico col mouse

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 713 I bottoni I bottoni vengono utilizzati per segnalare al programma una azione da compiere Per inserire un bottone nellinterfaccia, basta creare una istanza della classe Button ed aggiungere tale oggetto in una finestra Frame finestra = new Frame(Graphical User Interface); Button exit = new Button( ); Button ok = new Button(OK); exit.setLabel(EXIT); finestra.add(exit); finestra.add(ok); I dettagli della realizzazione dellaspetto grafico dei controlli sono gestiti in maniera trasparente al programmatore dalle classi di java.awt

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 714 Le etichette Le etichette sono in essenza nientaltro che stringhe di testo da inserire in un qualche contenitore Una etichetta è un oggetto di tipo Label che ha associato un testo Label etichetta = new Label (ATTENZIONE!); Label hello = new Label( ); String messaggio; hello.setText(Salve, gente); messaggio = etichetta.getText( );

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 715 Le caselle Per comunicare al programma un cambiamento dello stato del sistema è possibile usare un Checkbox Una casella Checkbox è un oggetto con uno stato che può essere on oppure off, ed ha laspetto grafico di un quadratino con associata una stringa Per cambiare lo stato di un checkbox, basta cliccare col mouse nella casella Checkbox utenteEsperto = new Checkbox(ESPERTO); Checkbox utenteNovizio = new Checkbox(NON ESPERTO); Boolean stato; stato = utenteEsperto.getState( );

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 716 Radio Buttons Un Radio Button è un caso speciale di Checkbox: i Radio Buttons possono essere raggruppati assieme in modo che uno solo di essi sia nello stato on Se uno dei Radio Buttons di un gruppo è off e viene cliccato, quello che era on viene automaticamente posto a off Per raggruppare i Radio Buttons si usa la classe CheckboxGroup CheckboxGroup lingua = new CheckboxGroup( ); Checkbox inglese = new Checkbox(English, lingua, true); Checkbox italiano = new Checkbox(Italiano, lingua, false);

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 717 Menù Per creare un menù a tendina si utilizza la classe Choice Le varie possibili opzioni del menù sono specificate come stringhe aggiunte alloggetto di tipo Choice paramString( ) ritorna la stringa correntemente selezionata Choice modifica = new Choice(Modifica ); String selezione; modifica.addItem(Copia); modifica.addItem(Taglia); modifica.addItem(Incolla);..... modifica.select(Copia); selezione = modifica.paramString( );

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 718 Liste Una lista permette di selezionare una stringa da un elenco fornito di frecce di scrolling E anche possibile selezionare una sequenza di stringhe Il costruttore no-arg di List crea una lista di cui non viene mostrato nessun elemento. Più usato è il costruttore con 2 argomenti List nomi = new List(4, true ); String[ ] nomiSelezionati; nomi.addItem(Aldo); nomi.addItem(Carla); nomi.addItem(Ettore); nomi.addItem(Giovanni); nomi.addItem(Maria); nomi.addItem(Luisa); nomiSelezionati = nomi.getSelectedItems( );

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 719 Campi di testo Un campo di testo permette allutente di scrivere una stringa La classe TextField contiene una varietà di costruttori e metodi per creare campi di testo, scriverci dentro, selezionare il testo scritto TextField testoA = new TextField( ); TextField testoB = new TextField(24); TextField testoC = new TextField(Scrivere quì); TextField testoD = new TextField(Scrivere anche quì, 24); String scritto = testoC.getText( ); String scrittoSelezionato = testoD.getSelectedText( );

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 720 Aree di testo Una area di testo è un componente del tutto simile a TextField, con la caratteristica di poter contenere un testo formato da più linee, con barra di scorrimento verticale E possibile specificare allatto della creazione di un componente di tipo TextArea il numero di caratteri per ciascuna riga e il numero di righe visualizzate TextArea lineeDiTesto = new TextArea(testo su più linee, 8, 24);

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 721 Barre di scorrimento Una barra di scorrimento è un controllo che permette di muovere una casella di scorrimento allinterno di una guida per mezzo di due frecce direzionali E possibile specificarne lorientamento orizzontale/verticale, e il suo stato è caratterizzato da un valore che riflette la posizione della casella di scorrimento Scrollbar barra = new Scrollbar(Scrollbar.VERTICAL, 20, 5, 0, 80); Crea una barra di scorrimento verticale, con posizione iniziale 20, incremento pari a 5, valore minimo 0, valore massimo 80

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 722 Inserire componenti: i Layout Managers Un Layout Manager è un oggetto che si occupa di disporre automaticamente i componenti inseriti in un contenitore secondo un ben preciso criterio java.awt definisce diversi Layout Managers standard, fra cui: FlowLayout Dispone i componenti per righe BorderLayout Inserisce componenti in sezioni N, E, S, W, Center CardLayout Dispone i componenti in una pila, con un bottone per voltare i componenti come fossero un mazzo di carte GridLayout Dispone i componenti su una griglia

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 723 Inserire componenti: un esempio import java.awt.*; public class FrameDemo { public static void main (String args[ ]) { Button bottoni[ ] = new Button[6]; Frame demo = new Frame(Questa è una demo); demo.setLayout(new BorderLayout( )); for (int i = 1; i < 6; i++) { bottoni[i] = new Button(BOTTONE + i); } demo.add(BorderLayout.NORTH, bottoni[1]); demo.add(BorderLayout.SOUTH, bottoni[2]); demo.add(BorderLayout.EAST, bottoni[3]); demo.add(BorderLayout.WEST, bottoni[4]); demo.add(BorderLayout.CENTER, bottoni[5]); demo.show( ); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 724 Gestione della grafica: la classe Graphics Un oggetto di tipo Graphics rappresenta essenzialmente una porzione di schermo in cui è possibile mostrare testi, immagini, forme in modo indipendente dalla piattaforma Per disegnare un oggetto di tipo Graphics si utilizza il metodo paint( ) della classe Component, cui si deve passare il contesto grafico di tipo Graphics Per ottenere il contesto grafico di una finestra si usa il metodo get Graphics( ) import java.awt.Frame; import java.awt.Graphics; public class SimpleGrafica extends Frame { public void paint (Graphics g) { g.drawRect(10, 10, 100, 75); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 725 Disegnare linee Per disegnare linee in un oggetto di tipo Graphics si utilizza il metodo drawLine(int inizioX, int inizioY, int fineX, int fineY) La linea viene disegnata nel colore attivo dal punto (inizioX, inizioY) al punto (fineX, fineY) import java.awt.*; public class Linee extends Frame { public void paint (Graphics g) { g.drawLine(10, 10, 100, 75); g.drawLine(10, 10, 40, 75); g.drawLine(40, 10, 40, 75); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 726 Disegnare rettangoli Per disegnare rettangoli in un oggetto di tipo Graphics si usano metodo quali drawRect(int alto, int sin, int larg, int altez) drawRoundRect(int alto, int sin, int larg, int altez, int diamX, int diamY) fillRect(int alto, int sinistra, int larghezza, int altezza) fillRoundRect(int alto, int sin, int larg, int altez, int diamX, int diamY) import java.awt.*; public class Rettangoli extends Frame { public void paint (Graphics g) { g.drawRect(10, 10, 100, 75); g.fillRoundRect(20, 20, 40, 35, 15, 15); g.drawRoundRect(40, 30, 40, 15, 10, 10); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 727 Disegnare ellissi e cerchi Per disegnare ellissi e cerchi in un oggetto di tipo Graphics si usano metodo quali drawOval(int alto, int sin, int larg, int altez) fillOval(int alto, int sinistra, int larghezza, int altezza) import java.awt.*; public class Ellissi extends Frame { public void paint (Graphics g) { g.drawOval(10, 10, 100, 75); g.fillOval(20, 20, 40, 35); g.fillOval(40, 30, 40, 40); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 728 Disegnare archi Per disegnare archi in un oggetto di tipo Graphics si usano metodo quali drawArc(int alto, int sin, int larg, int altez, int angInizio, int angCurv) fillArc(int alto, int sin, int larg, int altez, int angInizio, int angCurv) import java.awt.*; public class Archi extends Frame { public void paint (Graphics g) { g.drawArc(10, 10, 50, 25, 0, 90); g.fillArc(20, 20, 40, 40, 90, -120); }

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 729 Disegnare poligoni Per disegnare poligoni in un oggetto di tipo Graphics si usano metodo quali drawPolygon(int x[ ], int y[ ], int numPunti) fillPolygon(int x[ ], int y[ ], int numPunti ) import java.awt.*; public class Clessidra extends Frame { public void paint (Graphics g) { int num = 5; int puntiX[ ] = {30, 200, 30, 200, 30}; int puntiY[ ] = {30, 30, 200, 200, 30}; g.drawPolygon(puntiX, puntiY, num); }