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

Documenti analoghi
GUI e java swing. Templates per GUI degli IDE. Gli IDE forniscono Template per generare interfacce grafiche.

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

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

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

Il codice generato automaticamente da NetBeans

Programmazione in rete e laboratorio

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

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

L interfaccia grafica in Java

L interfaccia grafica con Java

Eventi e listener per i componenti grafici

Corso sul linguaggio Java

Laoratorio di sistemi Estrazione di una carta senza ripetizione Java [NetBeans]

Alessandro De Luca. Lezione, 13 maggio 2015

Programmazione Java: Interfacce grafiche (GUI)

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

Grafica swing in Java

Java GUI. Swing Java

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

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

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

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

Corso sul linguaggio Java

Campo Minato. in java

Sviluppo di Interfacce Grafiche in Java

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

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

Corso Eclipse. Prerequisiti. 3 Window Builder

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

ESERCITAZIONI SU Java

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

GRAFICA ED EVENTI SWING, AWT e JavaFX

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

BorderLayout. 1 Gestori di Layout (guida visuale)

Gestione degli eventi in Java

Introduzione al package grafico Swing

Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER.

Le basi del linguaggio Java

Android. Android01: Introduzione alle Activity.

Gestione di eventi ed interfacce utente grafiche

GESTIONE DEGLI ERRORI

Laboratorio di Programmazione Lezione 4. Cristian Del Fabbro

Prova d Esame Compito A

Gestione delle eccezioni

CORSO ACCESS PARTE IV

maggio 2004 Stefano Sanna - gerda@crs4.it

Laboratorio di Programmazione 1 [Java]

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet

Java Interfaccia Grafica

Corso sul PACCHETTO OFFICE. Modulo Access

PRIMI PASSI CON UN DATABASE

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

Interazioni col mondo: eventi

Proprietà delle Classi e degli Oggetti in Java

18 - Classi parzialmente definite: Classi Astratte e Interfacce

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

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

6. Editor Divi. Il layout. Guida Sintetica Wordpress //

Esempio su strutture dati dinamiche: ArrayList

APPLICAZIONI & APPLET

Esempio su strutture dati dinamiche: ArrayList

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

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

Introduzione (Swing vs AWT)

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Video Scrittura (MS Word) Prima Parte

Programmazione a oggetti

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Cosa sono i report. Prof. Emanuele Papotto 05/10/2010

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

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

LEZIONE 5. CORSO BASE DI AutoCad. Corso Base di AutoCad. AutoCad. Ing. Lorenzo Procino

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Database Modulo 6 CREAZIONE DI MASCHERE

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Transcript:

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 speciali

Componenti della GUI Un componente della GUI rappresenta un oggetto grafico che visualizza informazioni oppure permette all utente di interagire con il programma. Es. pulsanti, etichette, campi di testo, barre di scorrimento sono componenti. I componenti generano eventi cui i programmi attraverso le classi listener rispondono. Ogni componenti genera eventi specifici. Container I container sono componenti speciali che possono contenere altri componenti Sono container applet frame: è una finestra che può essere posizionata ovunque nello schermo panel: consentono di organizzare gruppi di componenti

Java Swing I componenti grafici sono classi. Per mostrarli e utilizzarli occorre dichiarare un riferimento e creare l oggetto. Possono essere creati come derivazione di classi base appartenenti al package Swing. Le super classi base definiscono le caratteristiche generali dei componenti. Le classi derivate definiscono le proprietà specifiche. Frame - estensione di JFrame Per creare una classe frame occorre: importare javax.swing.jframe estendere la classe JFrame public class FrameDemo extends JFrame creare un listener per la finestra primo modo implementare l interfaccia WindowListener sec modo estendere la classe WindowAdapter

Templates per GUI degli IDE Gli IDE forniscono Template per generare interfacce grafiche. NetBeans: New-> Java Gui Forms -> JFrame (assegnare un nome al Frame, es. FrameDemo) L IDE crea un Frame vuoto a cui è associato un evento windowclosing, che si autoavvia in posizione iniziale (0,0) con dimensioni ridotte. FrameDemo è una classe (si può vedere il codice dall albero del filesystem). Attraverso una maschera (sulla sx) è possibile impostare le proprietà più importanti del Frame. Attraverso codice poi si può personalizzare la classe. DESIGN

Codice di un frame generato da NetBeans public class FrameDemo extends javax.swing.jframe { Dichiarazione della classe come estensione di JFrame public FrameDemo() { initcomponents(); private void initcomponents() { costruttore: richiama il metodo initcomponet. Qui dobbiamo impostare le proprietà iniziali del Frame addwindowlistener(new java.awt.event.windowadapter() { public void windowclosing(java.awt.event.windowevent evt) { exitform(evt); ); pack(); private void exitform(java.awt.event.windowevent evt) { System.exit(0); public static void main(string args[]) { new FrameDemo().show(); Metodo generato automaticamente dall IDE. Aggiunge il listener per gestrire gli eventi di chiusura della finestra. NON scrivere mai in questa parte. metodo Main: opzionale, possiamo creare un programma driver Metodo eseguito alla chiusura del Frame Programma test: avvia la maschera public class avviogui { /** Creates a new instance of avviogui */ public avviogui() { public static void main(string[] args) { FrameDemo myframe = new FrameDemo(); myframe.show();

Personalizzazioni Il FORM compare in (0,0) e con dimensioni zero, senza titolo. Per modificare dimensioni e titolo della finestra, personalizzo il costruttore: public FrameDemo() { initcomponents(); settitle("la mia prima finestra"); setsize (500, 500); setlocation(100,100); Si possono aggiungere metodi per gestire eventi, come mouseclick ecc. Tali eventi possono essere definiti attraverso la maschera che mostra le proprietà della classe. L IDE li scrive automaticamente e aggiunge il listener nel metodo initcomponents. public class FrameDemo2 extends javax.swing.jframe { public FrameDemo2() { initcomponents(); settitle("prima"); setsize (500, 500); setlocation(100,100); Imposto nel costruttuore proprietà iniziali dell oggetto private void initcomponents() { addmouselistener(new java.awt.event.mouseadapter() { public void mouseclicked(java.awt.event.mouseevent evt) { mouseclick(evt); ); addwindowlistener(new java.awt.event.windowadapter() { public void windowclosing(java.awt.event.windowevent evt) { exitform(evt); ); pack();

private void mouseclick(java.awt.event.mouseevent evt) { //se nel titolo è scirtto 'prima' lo cambio in 'dopo' e viceversa String titatt; titatt=this.gettitle(); if (titatt.equals("prima")) this.settitle("dopo"); else this.settitle("prima"); private void exitform(java.awt.event.windowevent evt) { System.exit(0); public static void main(string args[]) { new FrameDemo2().show(); // Variables declaration - do not modify // End of variables declaration metodo invocato al click del mouse Aggiungere componenti al Frame Nella classe FrameDemo si possono aggiungere pulsanti, etichette ecc (altri componenti grafici), prima costruendo classi per ognuno di essi e poi istanziando e utilizzando gli oggetti delle classi. Nelle JavaDoc troviamo metodi e proprietà di tutte le classi. Attraverso i tool grafici di NetBeans tali elementi vengono aggiunti automaticamente, trascinando l elemento dal panel che compare in design direttamente sul Frame.

Layout manager Il Layout manager determina il modo in cui i componenti devono essere organizzati graficamente in un contenitore. Ogni componente ha il suo layout manager di default, che però può essere cambiato. I layoutmanager di default sono: Flow Layout Border Layout Box Layout Card Layout Grid Layout GridBag Layout Overlay Layout Ognuno ha proprie caratteristiche. Per modificare quello di default in NetBeans si fa click col pulsante dx sull oggetto Layout nell albero della classe. Da codice invece FrameDemo.setLayout (new BorderLayout()); FlowLayout: è uno dei più semplici. Mette su una riga quanti più componenti è possibile, usando le dimensioni predefinite, quando un componente non sta sulla riga corrente lo sposta sulla riga successiva. Si può impostare lo spazio tra i componenti. Box Layout: organizza i componenti sia verticalmente sia orizzontalmente, in una riga o in una colonna. Occorre creare un boxlayout per ogni componente. In fase di creazione è possibile specificare se organizzare gli oggetti orizzontalmente o verticalmente. Consente anche di creare aree vuote per fissare lo spazio vuoto sulla maschera. Nuovo Absolute Layout: mette in posizione fissa i componenti

Pulsanti, eticchette, text box.. Fissato il LayoutManager del container si possono trascinare su questo altri componenti grafici per comporre l interfaccia. I componenti grafici più in uso sono: Label (etichetta): visualizza una riga di testo. TextField (campo di testo): visualizza un riga di testo e permette all utente di scriverci dentro, utilizzata per l input TextArea (area di testo): come textfild ma visualizza più linee di testo. Push Button (pulsante): utilizzato per eseguire delle azioni al click. (Altri la prossima lezione..) Label Si trascina l oggetto graficamente sulla maschera. E possibile modificare in fase di design (pannello proprietà) il nome dell oggetto (etich1, ad esempio), font, scritta iniziale, etc. codice aggiunto da netbeans: etich1 = new javax.swing.jlabel(); //nel metodo init components La classe JLabel ha un serie di metodi per gestire l etichetta. Per modificare proprietà o richiamare metodi dell etichetta aggiunta richiamiamo i membri della classe JLabel. Es.: etich1.settext ( pippo ) imposta il testo dell etichetta

Pulsanti Come per le label è sufficiente trascinarli e impostare le proprietà iniziali. Bottone1 = new javax.swing.jbutton(); Si devono poi aggiungere gli eventi da gestire: mouseclick ecc (design, scheda events). Dentro ai metodi invocati al verificarsi degli eventi si scriverà ciò che il programma deve fare. Codice per gestire il click su un bottone nel metodo initcomponents: Bottone1.addMouseListener(new java.awt.event.mouseadapter() { public void mouseclicked(java.awt.event.mouseevent evt) { Bottone1mouseClick(evt);.. private void Bottone1mouseClick(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

TextField E utile per leggere l input dell utente, attraverso le proprietà settext e gettext.