L interfaccia grafica con Java



Похожие документы
Corso sul linguaggio Java

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

L interfaccia grafica in Java

Gestione degli eventi in Java

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

Programmazione Java: Interfacce grafiche (GUI)

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Interazioni col mondo: eventi

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

Sviluppo di Interfacce Grafiche in Java

Alessandro De Luca. Lezione, 13 maggio 2015

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

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono"," "}; //nomi delle colonne della tabella

Grafico della parabola

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Corso Eclipse. Prerequisiti. 3 Window Builder

Gestione di eventi ed interfacce utente grafiche

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

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

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

I Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Esercizio data base "Biblioteca"

Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini...

8.9 CREARE UNA TABELLA PIVOT

23 - Graphical User Interface GUI (Cenni)

L Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

progetti guidati EXCEL Dalla tabella statistica al relativo grafico

DISPENSA PER MICROSOFT WORD 2010

Introduzione al package grafico Swing

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

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

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1

Registratori di Cassa

STAMPA UNIONE DI WORD

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

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Guida. Macchina Scratch

POSTECERT POST CERTIFICATA GUIDA ALL USO DELLA WEBMAIL

Progettazione : Design Pattern Creazionali

Eleonline gestione dello spoglio elettorale

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

Modulo 3 - Elaborazione Testi 3.6 Preparazione stampa

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Figura 1 Le Icone dei file di Excel con e senza macro.

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

IMPOSTARE UNA MASCHERA CHE SI APRE AUTOMATICAMENTE

Guida all uso di Java Diagrammi ER

CREARE UN JUKEBOX CON POWERPOINT

Il foglio elettronico. Excel PARTE

Tale attività non è descritta in questa dispensa

Pagina 1 di 16. Manuale d uso 626 VISITE MEDICHE

Introduzione. Strumenti di Presentazione Power Point. Risultato finale. Slide. Power Point. Primi Passi 1

MANUALE SOFTWARE IRE (INTERVENTI DI RIQUALIFICAZIONE ENERGETICA) ISTRUZIONI PER L UTENTE

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

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

7.4 Estrazione di materiale dal web

Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt

Fondamenti di informatica. Word Elaborazione di testi

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA

2. Guida all uso del software IrfanView

IL LINGUAGGIO Visual Basic

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Lezione Power Point. Eleonora Di Maria. Corso di Marketing

Esercitazione n. 10: HTML e primo sito web

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

Amministrazione classi

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

Corso di Archivistica

Utilizzo di Blue s. Avvio di Blue s C A P I T O L O 7. Come avviare il programma e inserire la password

Personalizza. Page 1 of 33

Cosa è una macro? strumento per automatizzare delle operazioni fatte con un programma. istruzione complessa, composta da più istruzioni elementari

Programmazione in Java e gestione della grafica. Lezione 19

Database 1 biblioteca universitaria. Testo del quesito

Java: Compilatore e Interprete

GUIDA DOCENTE ALL USO DELLA PIATTAFORMA EXCHANGE E-LEARNING - Lotus Quickr

Procedura SMS. Manuale Utente

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Tabelle 3.4. Unità didattica. Copyright 2009 Apogeo. Obiettivi. Prerequisiti

MANUALE D USO DELLA PIATTAFORMA ITCMS

SOMMARIO... 3 INTRODUZIONE...

TEST: Word & Excel Tutti i diritti riservati. Computer Facile -

4. Fondamenti per la produttività informatica

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

Manuale Front-Office Servizio ConservazioneNoProblem

CORSO DI INFORMATICA 2

Транскрипт:

L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface) sono quelle composte da finestre bottoni icone immagini In Java AWT (Abstract Window Toolkit) è la parte che si occupa di gestire l interfaccia utente. E contenenuta nel package java.awt Il package SWING rappresenta l evoluzione di AWT nella costruzione delle interfacce porta grafiche. Si importa con javax.swing Su cosa si basa una interfaccia grafica? Sui Componenti (bottoni, etichette, aree di testo etc) Sui contenitori (la finestra, il pannello etc) altri oggetti di supporto (Gestori di Layout, Gestori di eventi) Pag 1

Package AWT Il Contenitore Frame La finestra si realizza tramite la classe Frame Frame f = new Frame ( Primo Programma ); oppure Frame f = new Frame( ); Metodi per modificare la finestra: La dimensione: f.setsize ( 100,100); La posizione : f.setlocation (200,200); La visibilità : f.setvisible (true); Il Contenitore Panel E un contenitore intermedio rispetto al Frame. Dentro una Frame ci possono essere più Panel Si realizza con Panel p = new Panel ( ); Il metodo add aggiunge componenti al Panel o al Frame oppure Panel al Frame in questo modo: f.add(p); per colorare un pannello si usa questo metodo: p.setbackground(color.red); Pag 2

I componenti di AWT Le etichette Ecco la Label con 3 possibili costruttori: Label( ); Label( Ciao ); Label( Ciao,Label.LEFT); Creare una etichetta, aggiungerla Cambiare i colori alle etichette: Label et= new Label( ); et.setbackground(color.red); et.setforeground(color.yellow); I bottoni Button( ); Button( Premi ); Creare un Bottone, disabilitarlo, abilitarlo: Button b1 = new Button ( OK ); b1.setenabled(true); b1.setenabled(false); Pag 3

Le Caselle di testo La creo con: TextField tf=new TextField( ); Ha 4 tipi di costruttori: TextField( ); TextField( inserisci ); TextField( 10); TextField( inserisci,10); Ha 3 metodi importanti: esempio: tf.settext( cognome ); s=tf.gettext( ); tf.seteditable(false); Le aree di testo Creazione: TextArea ta = new TextArea( ); Ha 4 costruttori: TextArea( ); TextArea(5,10 ); TextArea( Prima Riga ); TextArea( Prima Riga,5,10,SCROLLBARS_BOTH); E i metodi: settext( ); gettext( ); seteditable(true); append( nuova riga ); Pag 4

Le caselle combinate Le combobox vanno create e poi si aggiungono voci all oggetto: Choice cb= new Choice( ); ATTENZIONE: Choice è in AWT, in SWING la classe è JComboBox Metodo per aggiungere nella tendina: cb.additem( rosso ); cb.additem( verde ); cb.additem( bianco ); Metodo per acquisire la scelta selezionata: Int x=getselecteditem ( ); Metodo per selezionare una voce della tendina: Int x=setselecteditem ( 5); String x=setselecteditem ( Rosso ); Pag 5

Layout degli elementi grafici I componenti grafici vengono aggiunti al Frame o ad un Panel, ma come si dispongono dipende dal LayoutManager Tre tipi di Layout FlowLayout BorderLayout GridLayout Esempi: dopo Panel p =new Panel( ) scelgo quale setlayout è il piu adatto alla mia finestra p.setlayout(new FlowLayout()); p.setlayout(new BorderLayout()); p.setlayout(new GridLayout(3,2,10,10)); Con il Package swing la gestione del Panel è diversa: Vediamolo con un esempio completo, la differenza però à nell ultima riga: JPanel p =new JPanel(); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); p.setlayout(new BorderLayout()); p1.add(bottone); p2.add(campotesto); p3.add(testoarea); p.add(p1,"west"); p.add(p2,"center"); p.add(p3,"east"); f.getcontentpane().add(p); p p1 p2 p3 Pag 6

Posizionamento assoluto della finestra Si può disattivare il LayoutManager con p.setlayout(null); e impostare la posizione assoluta nel componente nella finestra. Ma in questo caso è consigliabile disattivare il ridimensionamento della finestra setbounds(100,100,10,10) indica la posizione x y del componente, la larghezza e l altezza del componente Esempio: p.setlayout(null); Button b1=new Button ( OK ); p.add(b1); b1.setbounds(50,50,25,25); Pag 7

Costruire queste interfacce Grafiche Esercizio 1 Esercizio 2 Esercizio 3 Pag 8

Per realizzare la gestione degli eventi si deve: 1. Creare uno o più ascoltatori in base agli eventi che si vogliono gestire 2. Registrare l ascoltatore in un oggetto origine che si vuole controllare 3. Gestire l evento eseguendo il metodo associato Creare l ascoltatore Ogni ascoltatore ha un interfaccia, esiste l interfaccia delle finestre (WindowListener), dei bottoni (ActionListener), del Mouse (MouseListener), e della Tastiera (KeyListener ) La parola chiave implements specifica che la classe implementa una particolare interfaccia class MyGestore implements ActionListener Le interfacce che gestiscono gli eventi sono contenute nel package import java.awt.event.* ; E obbligatorio che tutti i metodi di un ascoltatore siano presenti anche se vuoti, (in quanto metodi astratti), essi contengono le istruzioni da eseguire se accade quell evento. Ogni metodo degli ascoltatori riceve come parametro l evento che è stato generato. public void actionperformed (ActionEvent e) Registrazione presso l origine Predisposti gli ascoltatori, si devono scegliere gli oggetti origine, cioè quegli oggetti che possono generare un evento e ai quali si vuole associare una risposta. Ogni componente ha i metodi per registrare un particolare ascoltatore: per i bottoni addactionlistener per le finestre addwindowlistener Pag 9

esempio b.addactionlistener(new MyGestore( )); oppure MyGestore gest=new MyGestore( ); b1.addactionlistener(gest); b2.addactionlistener(gest); Modialità di esecuzione L interfaccia Action Listener contiene un solo metodo astratto che deve essere ridefinito: actionperformed( ) Siccome possono esistere più bottoni che generano un evento si puo fare riferimento allo stesso ascoltatore ed eseguire un controllo all interno del metodo per verificare quale bottone è stato premuto. Il metodo ActionPerformed riceve come parametro un oggetto di classe ActionEvent. I metodi getactioncommand( ); esempio String s= e.getactioncommand( ); getsource( ); esempio if ( b==e.getsource( )) Ci offrono due possibilità di acquisire informazioni sull oggetto che ha generato l evento. Pag 10

Gestione degli eventi in Java Un esempio concreto MyApp_1.j ava import java.awt.*; import javax.swing.*; import java.awt.event.*; public class MyApp_1 extends JFrame public MyApp_1 ( ) crea_interfaccia_grafica; x.addactionlistener (new Ascolta ( )); public class void main (String args[]) new MyApp_1 ( ); MyApp_1 è il programma Ascolta è la classe ascoltatore che implementa l interfaccia ActionListener Ascolta.java public class Ascolta implements ActionListener private. public Ascolta ( ) public void actionperformed( Action Event e) System.out.println( hai premuto + e.getactioncommand( )); X è il bottone che genera l evento e viene descritto in actionperformed Cliccando sul bottone viene stampata la scritta che descrive il bottone stesso. Lo facciamo attraverso il metodo actionperformed e il metodo getactioncommand Pag 11

Possiamo usare un unico file MyApp_1.java import java.awt.*; import javax.swing.*; import java.awt.event.*; public class MyApp_1 extends JFrame public MyApp_1 ( ) crea_interfaccia_grafica; x.addactionlistener (new Ascolta ( )); setvisible(true); public class void main (String args[]) new MyApp_1 ( ); class Ascolta implements ActionListener private. public Ascolta ( ) public void actionperformed( Action Event e) System.out.println( hai premuto + e.getactioncommand( )); Pag 12

Il nostro primo clic in Java Creare un interfaccia grafica con un bottone e una label. Cliccando sul bottone, al posto di Ancora niente compare Hai cliccato La finestra si disegna nel costruttore della classe MyAppl Registro l origine dell evento clic del Mouse sempre nel costruttore Es: b.addactionlistener(new MyGestore(et)); Scrivo il main della mia classe che consiste nella sola creazione dell oggetto della classe finestra public static void main (String args[]) new MyAppJ1 ( ); Creo la classe ascoltatore che implementa l interfaccia ActionListener class MyGestoreJ1 implements ActionListener Definisco il metodo che realizzerà il cambio dell etichetta della label attraverso il metodo settext( Hai cliccato ) public void actionperformed (ActionEvent e) et.settext("hai cliccato!"); Pag 13

Il Programma completo import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyAppJ1 extends JFrame MyAppJ1( ) JFrame f=new JFrame ("My Applicazione 1"); JPanel p=new JPanel(); JLabel et=new JLabel ("Ancora niente"); JButton b=new JButton ("Premi Bottone"); p.add(b); p.add(et); et.setbackground(color.yellow); et.setforeground(color.blue); p.setbackground(color.yellow); f.getcontentpane().add(p); //f.add(p); f.setsize(300,200); f.setlocation(0,0); f.setdefaultcloseoperation(jframe.exit_on_close); b.addactionlistener(new MyGestore(et)); f.setvisible(true); public static void main (String args[]) new MyAppJ1 ( ); class MyGestore implements ActionListener private JLabel et; public MyGestore (JLabel et) this.et=et; public void actionperformed (ActionEvent e) et.settext("hai cliccato!"); System.out.println(e.getActionCommand()); Pag 14

Esercizio 1 Cliccando sul bottone, nel text field viene sostituita la scritta ancora niente con Hai cliccato! Esercizio 2 Cliccando sul bottone, nel text field viene conteggiato il numero di clic Pag 15

Esercizio 3 Inserire due bottoni: uno colora il pannello di giallo, l altro di rosso, nel textfield compare il nome del bottone cliccato Esercizio 4 Collocare un bottone, un textfield e una textarea. Scrivendo nel textfield e cliccando sul bottone la textarea si riempie una riga alla volta e la textfield si svuota dopo ogni clic Pag 16

Esercizio 5 Inserire una Label, una combobox con un certo numero di colori, un bottone. Apro la combobox, scelgo il colore, clicco sul bottone e il pannello cambia colore Esercizio 6 Disegnare la calcolatrice con i 12 bottoni e la TextField. Cliccando sui bottoni, nella textfield compare il numero corrispondente. Ma ogni clic sostituisce il numero precedente. Il numero è allineato a destra, la cornice del textfield è più spessa, il carattere è Arial size 12 Pag 17

Esercizio 7 Ora i numeri dei bottoni si aggiungono uno dopo l altro nella TextField. Premendo CE la TextField va 0 (zero) Esercizio 8 Realizziamo ora una semplice calcolatrice Digito un numero, poi un operazione, un secondo numero, e poi con = ottengo il risultato dell operazione Pag 18

Conversioni Da stringa ad intero: int num=integer.parseint( s ); oppure int num= Integer.valueOf( s ).intvalue( ); Da intero a Stringa s= +num; GUIDA X GUI - JAVA Se ho tanti bottoni non ho bisogno di istanziare ogni volta lo stesso ascoltatore Per registrare l Ascoltatore Se ho tanti bottoni non ho bisogno di istanziare ogni volta lo stesso ascoltatore.. JButton b9=new JButton ("9"); JButton b8=new JButton ("8"); JButton b7=new JButton ("7"); JButton b6=new JButton ("6"); JButton b5=new JButton ("5"); JButton b4=new JButton ("4"); JButton b3=new JButton ("3"); JButton b2=new JButton ("2"); JButton b1=new JButton ("1"); b0.addactionlistener(new MyGestore(tf)); b1.addactionlistener(new MyGestore(tf)); b2.addactionlistener(new MyGestore(tf)); b3.addactionlistener(new MyGestore(tf)); b4.addactionlistener(new MyGestore(tf)); b5.addactionlistener(new MyGestore(tf)); b6.addactionlistener(new MyGestore(tf)); b7.addactionlistener(new MyGestore(tf)); b8.addactionlistener(new MyGestore(tf)); b9.addactionlistener(new MyGestore(tf));... class MyGestore implements ActionListener JTextField tf; public MyGestore (JTextField tf) this.tf=tf; public void actionperformed (ActionEvent e) JButton b9=new JButton ("9"); JButton b8=new JButton ("8"); JButton b7=new JButton ("7"); JButton b6=new JButton ("6"); JButton b5=new JButton ("5"); JButton b4=new JButton ("4"); JButton b3=new JButton ("3"); JButton b2=new JButton ("2"); JButton b1=new JButton ("1"); MyGestore gest = new MyGestore(tf); b0.addactionlistener(gest); b1.addactionlistener(gest); b2.addactionlistener(gest); b3.addactionlistener(gest); b4.addactionlistener(gest); b5.addactionlistener(gest); b6.addactionlistener(gest); b7.addactionlistener(gest); b8.addactionlistener(gest); b9.addactionlistener(gest);.. class MyGestore implements ActionListener JTextField tf; public MyGestore (JTextField tf) this.tf=tf; public void actionperformed (ActionEvent e) Pag 19

Alcuni metodi utili Cambiare il font di un oggetto Font prova=new Font("Courier",Font.BOLD,16); ta.setfont(prova); Modificare l allinamento di un oggetto tf.sethorizontalalignment(swingconstants.center); tf.sethorizontalalignment(swingconstants.right); Cambiare i colori di un oggetto p1.setbackground(color.red); p1.setforeground(color.yellow); Chiudere l applicazione insieme alla finestra f.setdefaultcloseoperation(jframe.exit_on_close); Impedire la scrittura in un oggetto di input tf.seteditable(false); Pag 20

Inserire un immagine con Java GUIDA X GUI - JAVA Creo un oggetto JLabel che chiamo per esempio immagine private JLabel immagine=new JLabel(); Lo inserisco in un panello p2.add(immagine); Utilizzo il metodo seticon e la classe ImageIcon per inserire l immagine nel pannello immagine.seticon(new ImageIcon("Classe3g.jpg")); Pag 21

Esercizio Creare tanti bottoni quante sono le immagini che hai in memoria (hard disk) relative a: gli studenti della classe oppure i giocatori della tua squadra oppure le città d Italia Cliccando sul bottone si inserisce nel pannello l immagine che ha il nome del bottone a cui aggiungo l estensione.jpg Per esempio: clicco su Rossi, si inserisce l immagine rossi.jpg Al contrario di altri programmi java non da errore se il file non è presente. Pag 22

Creare un programma a Menù con Java GUIDA X GUI - JAVA Le classi con cui gestisco il menu sono: JMenuBar JMenu JMenuItem JMenuBar è la barra su cui appoggio le voci del menu : File Modifica Formato.. La dichiaro con JMenu barra = new JMenuBar(); e al termine la inserisco con this.setjmenubar(barra) JMenu JMenu menu poi menu=new JMenu( File ); barra.add(menu); inserisco File nella barra del menu ed ora le voci che compongono File: Nuovo Apri Salva etc: JMenuItem JMenuItem voce voce=new MenuItem( Nuovo ); menu.add(voce); voce.addactionlistener(this); proseguo poi con il menu Modifica menu=new JMenu( Modifica ); barra.add(menu); e le voci del menu Modifica ( ) Pag 23

Le import da utilizzare import java.awt.*; import java.awt.event.*; import javax.swing.text.*; import java.io.*; import javax.swing.*; import java.util.*; Come collocare un file di testo in una TextArea int status = fch.showopendialog(this); if (status==jfilechooser.approve_option) try File f = fch.getselectedfile(); FileReader x=new FileReader(f); testo.read(x,null); settitle(f.getname()); catch (IOException ev) Come salvare una TextArea in un file di testo int status = fch.showsavedialog(this); if (status==jfilechooser.approve_option) try File f = fch.getselectedfile(); FileWriter x=new FileWriter(f); testo.write(x); settitle(f.getname()); catch (IOException ev) fch è un oggetto dichiarato: private JFileChooser fch = new JFileChooser(); Pag 24