Swing e la programmazione a eventi
|
|
- Achille Manzoni
- 7 anni fa
- Visualizzazioni
Transcript
1 Swing e la programmazione a eventi
2 Lo stile basato su eventi I componenti interagiscono attraverso l invio di messaggi broadcast o multicast Attenzione! C è un incendio Si avvisano i signori passeggeri che Ogni componente notifica un cambiamento nel proprio stato o in quello dell ambiente inviando un messaggio In tal caso agisce da generatore dell evento Tutti i componenti interessati all evento descritto da tale messaggio ne ricevono copia In tal caso agiscono da ascoltatori dell evento In generale, il generatore dell evento non conosce né il numero né l identità degli ascoltatori 2
3 Caratteristiche generali Con il paradigma a eventi L applicazione è puramente reattiva Non è possibile identificare staticamente un flusso di controllo unitario Il programma principale si limita a inizializzare l applicazione, istanziando gli osservatori e associandovi gli opportuni handler Occorrenza dell evento A Occorrenza dell evento B Realtà Applicazione Osservatori Notifica dell evento A Notifica dell evento B Ascoltatore evento A Ascoltatore evento A listeners Ascoltatore evento B 3
4 Vantaggi Utili per sistemi altamente dinamici ed evolutivi, in cui nuovi moduli si possono aggiungere o possono essere eliminati Per comunicare tra di loro, i moduli non devono conoscere le rispettive identità come invece accade in Java nomemodulo.nomeservizio (parametri) Si parla più in generale di paradigma di progettazione "publish and subscribe" moduli che generano eventi ("publish") moduli che sottoscrivono l'interesse ad essere notificati dell'occorrenza di certi eventi ("subscribe") 4
5 In pratica subscribe y y x Gestore degli eventi subscribe z subscribe x 5
6 Modello a eventi in Java Un applicazione può essere cost ruit a come component i che interagiscono attraverso eventi Utilizzando le convenzioni dei JavaBean Qui noi vediamo il package javax.swing libreria che fornisce le classi che consentono la progettazione delle interfacce utente secondo lo stile ad eventi 6
7 Swing
8 GUI GUI: Graphical User Interface L'interfaccia utente costituisce il mezzo con il quale l'utente interagisce con l'applicazione costituisce il "look&feel" Fondamentale per l'usabilità del software Come si progetta? 8
9 Progettazione Separare GUI e parte funzionale La GUI si preoccupa di interagire con l'utente visualizzare accettare input La parte funzionale contiene la logica applicativa Vantaggi GUI modificabile senza toccare la parte funzionale e viceversa Diverse strategie "look&feel" per la stessa applicazione Spesso le modifiche si incentrano sulla GUI al fine di migliorare l'usabilità 9
10 Model-View-Controller Swing si basa su un paradigma di progettazione che si incontra anche in altri campi: Un componente ha un suo modello logico Un componente ha un suo aspetto visuale Un componente ha comportamenti che consentono la sua interazione con il resto dell applicazione Esempio -> JButton Model: Premuto/Rilasciato (variabile booleana) View: dipende dal look&feel Controller: ActionPerformed della classe ActionListner collegata al JButton (ci torneremo) 10
11 AWT e Swing Abstract Windowing Toolkit (AWT) Sono un residuo di precedenti versioni di JAVA fornisce ancora alcune importanti componenti al funzionamento e creazione di elementi di interfaccia Swing Consentono di realizzare applicazioni con un look and feel più aggiornato e elegante Si basano su un modello di interazione introdotto da JAVA2 Hanno superato alcuni dei difetti di AWT Chiedono servizi al sistema operativo, ma (normalmente) ad un livello più basso e riescono così ad avere un maggiore controllo del look&feel Sono una estensione del core di JAVA e possono risultare più complesse da programmare Consentono un maggior controllo del look&feel di un applicazione e garantiscono il medesimo look&feel su tutte le piattaforme 11
12 AWT e Swing Il nome di tutti i componenti Swing inizia con J La convenzione è JXxxx I componenti Swing sono lightweight Un componente lightweight implementa il suo look-and-feel direttamente in Java senza delegarlo al sistema operativo che ospita l applicazione Maggior uniformità di comportamento È bene non includere componenti Swing ed AWT in una stessa interfaccia: I componenti AWT (heavyweight) vengono sempre mostrati sopra i componenti Swing (ad esempio con i Menu) Problema dovuto alla mancanza di compatibilità fra i due framework 12
13 Un interfaccia Swing Tre elementi fondamentali Contenitori Elementi grafici Eventi 13
14 Frame Un frame Definisce l intelaiatura dell interfaccia Fornisce un rettangolo, decorato alla maniera delle finestre cui siamo abituati E un oggetto COMPLESSO! QuickTime and a TIFF (LZW) decompressor are needed to see this picture. 14
15 JFrame Come in tutta la programmazione ad oggetti occorre conoscere la gerarchia entro la quale si colloca JFrame Per conoscere la derivazione di ogni oggetto delle librerie GUI di Swing si deve fare ricorso alla documentazione in linea di Java java.lang.object java.awt.component java.awt.container java.awt.window java.awt.frame javax.swing.jframe 15
16 JFrame QuickTime and a TIFF (LZW) decompressor are needed to see this picture. 16
17 Scorrendo la gerarchia Component A component is an object having a graphical representation that can be displayed on the screen and that can interact with the user. Examples of components are the buttons, checkboxes, and scrollbars of a typical graphical user interface Component è quindi una classe molto generale e definisce un sacco di metodi Container Un Component con la proprietà di essere abilitato a contenere altri Component Prevede metodi di tipo add per aggiungere componenti Prevede anche metodi per rappresentare il contenitore e i suoi contenuti e per aggiornarne l immagine 17
18 Scorrendo la gerarchia Window È un particolare contenitore che può apparire sullo schermo come entità propria, ma non ha bordi, barre e controlli Possiede metodi per mostrare la finestra, nascondere la finestra, posizionare la finestra e aggiustare l ordine di comparizione relativamente ad altre finestre Frame Si tratta di Window con bordi e barra del titolo, oltre alle caratteristiche solite di un interfaccia (minimizzazione, iconizzazione, chiusura, resizing) JFrame È un Frame AWT a cui SWING aggiunge una serie di metodi per ridefinire i dettagli grafici. Ad esempio l metodo setsize(int l, int h) permette di determinare le dimensioni del Frame Il metodo setlocation(int x, int y) consente di definire le coordinate del pixel in alto a sinistra del frame nel riferimento dello schermo 18
19 Cosa possiamo fare con un JFrame? Non possiamo disegnare, scrivere o aggiungere elementi direttamente al Frame Gli elementi diversi dal Menu debbono essere aggiunti ad un Container opportuno Ad esempio Per scrivere del testo dentro un Frame, il testo dovrà essere scritto (aggiunto) al pannello contentpane del JFrame Per convenienza il metodo add() di JFrame si occupa di tutto il lavoro frame.getcontentpane().add(label) = frame.add(label) 19
20 HelloWorldSwing import javax.swing.*; public class HelloWorldSwing { private static void createandshowgui() { JFrame frame = new JFrame("HelloWorldSwing"); JLabel label = new JLabel("Hello World"); frame.getcontentpane().add(label); frame.pack(); frame.setvisible(true); } } public static void main(string[] args) { createandshowgui(); } 20
21 HelloWorldSwing (seconda versione) import javax.swing.*; public class HelloWorldSwing { private static void createandshowgui() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("HelloWorldSwing"); frame.setdefaultcloseoperation(jframe.exit_on_close); JLabel label = new JLabel("Hello World"); frame.getcontentpane().add(label); frame.pack(); frame.setvisible(true); } } public static void main(string[] args) { createandshowgui(); } 21
22 Look&feel 22
23 Look&feel nativo public class WindowUtilities { public static void setnativelookandfeel() { try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()); } catch(exception e) { System.out.println( Problema Look and feel nativo + e); } } 23
24 Aggiungiamo componenti Dobbiamo sapere: Da dove prendere i componenti? Una lista/descrizione delle librerie disponibili Come costruirli e personalizzarli? Costruttori e modificatori Come usarli? Quali eventi sono in grado di raccogliere e quali i listener necessari Come disporli sui frame che costituiscono la nostra applicazione? Layout manager 24
25 Container Top-level container JApplet JDialog JFrame General-purpose container JPanel JScrollPane JSplitPane JTabbedPane 25
26 Container Special-purpose container JInternalFrame JLayeredPane JToolBar Permette di inserire frame dentro altri frame Permette di semplificare l attivazione di determinate funzioni per mezzo di semplici pulsanti Permette di inserire componenti a vari livelli di profondità 26
27 Controlli di base JButtons JComboBox JList JMenu Include buttons, radiobuttons, checkbox, MenuItem, ToggleButton JSlider JTextField Include JPasswordField, JTextArea 27
28 Visualizzatori di informazioni non editabili JLabel JProgressBar Jcomponent.setToolTipText(String) Può includere immagini e/o testo 28
29 Visualizzatori di informazioni formattate editabili JColorChooser JFileChooser JTable JTextComponent JTree JTextField, JPasswordField, JTextArea, JEditorPane, JTextPane 29
30 Altri componenti grafici Label PushButton CheckBoxButton ScrollBar PullDownMenu PopupMenu 30
31 Layout Java gestisce la disposizione dei componenti dentro i Container mediante oggetti che si chiamano LayoutManager Incapsulano gli algoritmi per il posizionamento delle componenti di una GUI Il LayoutManager mantiene l algoritmo separato in una classe a parte È un interfaccia che descrive come un componente deve comunicare con il suo LayoutManager Esiste un ampia collezione di LayoutManager, ma se si vuole si può creare il proprio Noi vediamo solo i LayoutManager più comuni: FlowLayout, BorderLayout, GridLayout, CardLayout e GridBagLayout L associazione avviene tramite il metodo setlayout() di cui è provvista la classe Container (e quindi tutte le sue sottoclassi) p.setlayout(new BorderLayout()); 31
32 FlowLayout E il più semplice. La sua strategia è: Rispettare la dimensione di tutti i componenti Disporre i componenti in orizzontale finché non viene riempita tutta una riga, altrimenti iniziare su una nuova riga Se non c è spazio i componenti non vengono visualizzati private static void createandshowgui() { JFrame frame = new JFrame("Flow"); frame.setlayout(new FlowLayout()); frame.add(new JButton("Button1")); frame.add(new JButton("Button2")); frame.add(new JButton("Button3")); frame.add(new JButton("Button4")); frame.add(new JButton("Button5")); frame.pack(); frame.setvisible(true); } 32
33 BorderLayout Definisce 5 aree logiche: NORTH, SOUTH, CENTER, EAST e WEST Richiede la dimensione preferita del componente (altezza e larghezza) Se il componente è NORTH o SOUTH setta l altezza al valore preferito e la larghezza in modo da occupare tutto lo spazio orizzontale Se il componente è EAST o WEST setta la larghezza al valore preferito e l altezza in modo da occupare tutto lo spazio verticale restante Se il componente è CENTER setta l altezza e la larghezza in modo da occupare tutto lo spazio centrale restante Quindi Le posizioni NORTH e SOUTH servono quando vogliare fissare l altezza di un componente al valore preferito Le posizioni EAST e WEST servono quando vogliamo fissare la larghezza di un componente al valore preferito La parte CENTER è quella che si espande 33
34 Esempio private static void createandshowgui() { JFrame frame = new JFrame("Border"); frame.setlayout(new BorderLayout()); frame.add(new JButton("North"), BorderLayout.NORTH); frame.add(new JButton("South"), BorderLayout.SOUTH); frame.add(new JButton("Center"), BorderLayout.CENTER); frame.add(new JButton("East"), BorderLayout.EAST); frame.add(new JButton("West"), BorderLayout.WEST); frame.pack(); frame.setvisible(true); } 34
35 GridLayout Dispone i componenti su una griglia private static void createandshowgui() { JFrame frame = new JFrame("Grid"); frame.setlayout(new GridLayout(3,4)); for (int x=1; x<13; x++) frame.add(new JButton(""+x)); frame.pack(); frame.setvisible(true); } 35
36 Stratificazione private static void createandshowgui() { JFrame f = new JFrame( Example"); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); } f.setlayout(new BorderLayout()); p2.setlayout(new FlowLayout()); p4.setlayout(new BorderLayout()); p4.add(new JButton("Button1"), BorderLayout.EAST); p4.add(new JButton("Button2"), BorderLayout.WEST); p2.add(p3); p2.add(p4); f.add(p1, BorderLayout.NORTH); f.add(p2, BorderLayout.SOUTH); f.pack(); f.setvisible(true); 36
37 Eventi L interazione tra gli elementi dell interfaccia e la logica applicativa è gestita tramite eventi Gli EventListener sono interfacce definite per catturare e processare tipi di eventi particolari Un listener deve Essere associato al componente Essere informato quando il componente genera un evento del tipo richiesto Rispondere facendo qualcosa di appropriato 37
38 EventHandler Devono avere tre pezzi di codice Dichiarazione Estendono o implementano listener esistenti public class MyClass implements ActionListener { Associazione tra handler (ovvero listener) e istanza somecomponent.addactionlistener(instanceofmyclass); Definizione del codice che implementa i metodi dell interfaccia listener public void actionperformed(actionevent e) {... 38
39 Un primo esempio public class Demo extends JFrame implements ActionListener { JButton b = new JButton("Click me!"); public Demo() { b.addactionlistener(this); getcontentpane().add(b); pack(); setvisible(true); } public void actionperformed(actionevent e) { b.setbackground(color.red); } 39
40 Eventi e Listener Categoria Mouse Keyboard Selezione elem input di testo scrollbar bottoni, menu,... cambiamenti nella finestra focus Evento MouseEvent KeyEvent ItemEvent TextEvent AdjustmentEvent ActionEvent WindowEvent FocusEvent handler MouseListener, MouseMotionListener KeyListener ItemListener TextListener AdjustmentListener ActionListener WindowListener FocusListener 40
41 Esempio completo (parte I) import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CheckDemo { static JFrame jframe = new JFrame("Example"); public static void setupjframe() { jframe.setsize(400,100); jframe.setvisible(true); jframe.getcontentpane().setlayout( new FlowLayout() ); } WindowListener l = new MyWindowAdapter(); jframe.addwindowlistener(l); 41
42 Esempio completo (parte II) public static void main(string[] args) { setupjframe(); JCheckBox jck1 = new JCheckBox("Pepperoni"); JCheckBox jck2 = new JCheckBox("Mushroom"); JCheckBox jck3 = new JCheckBox("Black olives"); JCheckBox jck4 = new JCheckBox("Tomato"); jck1.addactionlistener(new MyActionListener()); jck2.additemlistener(new MyItemListener()); } } Container c = jframe.getcontentpane(); c.add(jck1); c.add(jck2); c.add(jck3); c.add(jck4); jframe.pack(); 42
43 Esempio completo (parte III) ActionEvent public class MyActionListener implements ActionListener { public void actionperformed(actionevent e) { System.out.println("event = " + e); } } ItemEvent public class MyItemListener implements ItemListener { public void itemstatechanged(itemevent e) { if (e.getstatechange()==e.selected) System.out.print("selected "); else System.out.print("de-selected "); System.out.print("Mushroom\n"); } } 43
44 Esempio completo (parte IV) WindowEvent public class MyWindowAdapter extends WindowAdapter { public void windowclosing(windowevent e) {System.exit(0);} } 44
45 Altro esempio QuickTime and a TIFF (LZW) decompressor are needed to see this picture. public class SwingApplication implements ActionListener { private static String labelprefix = "Number of button clicks: "; private int numclicks = 0; final JLabel label = new JLabel(labelPrefix + "0 "); public Component createcomponents() { JButton button = new JButton("I'm a Swing button!"); button.setmnemonic(keyevent.vk_i); button.addactionlistener(this); label.setlabelfor(button); JPanel pane = new JPanel(new GridLayout(0, 1)); pane.add(button); pane.add(label); pane.setborder(borderfactory.createemptyborder( 30, //top 30, //left 10, //bottom 30) //right ); return pane; } 45
46 Altro esempio public void actionperformed(actionevent e) { numclicks++; label.settext(labelprefix + numclicks); } } private static void createandshowgui() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("SwingApplication"); frame.setdefaultcloseoperation(jframe.exit_on_close); SwingApplication app = new SwingApplication(); Component contents = app.createcomponents(); frame.getcontentpane().add(contents, BorderLayout.CENTER); frame.pack(); frame.setvisible(true); } public static void main(string[] args) { createandshowgui(); } 46
47 Swing e multi-threading Un piccolo approfondimento
48 GUI Swing - multithreading Quando si scrive una GUI Swing si assiste a un cambio di paradigma Programma con flusso centralizzato -> programma reattivo basato su eventi Per questo motivo le Swing adottano un architettura multithread. Ciò permette di ottenere interfacce sempre reattive e che non si bloccano Esempio: se ho un client di posta elettronica e qualcuno mi spedisce un messaggiodi 10M voglio comunque potere: vedere l intestazione della mail, vedere una barra che mi indica quanto manca al download, scrivere una nuova mail nel frattempo, ecc. 48
49 3 tipi di thread - thread iniziale Il thread principale si occupa di inizializzare l interfaccia grafica. import javax.swing.*; public class HelloWorldSwing { private static void createandshowgui() { JFrame frame = new JFrame("HelloWorldSwing"); JLabel label = new JLabel("Hello World"); frame.getcontentpane().add(label); frame.pack(); frame.setvisible(true); } public static void main(string[] args) { createandshowgui(); } } // posso andare avanti a fare altro 49
50 3 tipi di thread - Event Dispatch Thread (EDT) Tutto il codice per la gestione dell interfaccia grafica viene eseguito dentro l EDT. Esiste una coda di eventi di sistema che raccoglie i click del mouse, la pressione sui tasti della tastiera, ecc. L EDT controlla ciclicamente la coda. Raccoglie un evento e decide cosa farne. Se è un click su un bottone chiama il metodo per la gestione del click del mouse su quel bottone. La gestione mediante coda garantisce che venga rispettato un certo ordine nella gestione degli eventi 50
51 Immaginiamo cosa sarebbe successo se non avessimo avuto l EDT. Ipotizziamo di avere due tasti: A e B Tasto A: Legge il contenuto di un file e lo presenta all utente all interno di una textbox. Tasto B: Legge dallo stesso textbox e scrive i contenuti su un file Cosa succede se premo molto velocemente prima A e poi B? Probabilmente avrei un comportamento anomalo!!! E per questo che tutto ciò che lavora sull interfaccia gira all interno di un univo thread (l EDT). 51
52 SwingUtilities Il modo giusto di inizializzare una GUI quindi non è quello che abbiamo visto prima, ma SwingUtilities.invokeLater(new Runnable() { public void run() { createandshowgui(); } } In questomodocreoun oggettorunnable(ilqualesioccupadi creare l interfaccia) e chiedo che venga gestito dall EDT. Esiste anche: SwingUtilities.invokeAndWait(new Runnable() { }) 52
53 La coda degli eventi di sistema 53
54 Considerazioni per la progettazione Per avere una buona interfaccia grafica cbisogna essere reattivi Bisogna dare l impressione all utente che sia sempre in controllo Il segreto è cercare di scrivere EventListener che siano veloci In questo modo eviteremo situazioni in cui un click può portare a una lunga attesa prima di vedere un risultato Ma se devo fare qualcosa che richiede tempo? Come faccio? Dobbiamo introdurre il terzo tipo di thread 54
55 3 tipi di thread - Worker Thread Il Worker thread viene creato dal programmatore per l esecuzione di compiti gravosi in background 55
56 Un indizio Per capire a fondo dobbiamo introdurre (per davvero) il multi-threading e la concorrenza in Java Sono argomenti di Info 3 Per chi volesse approfondire per conto proprio Il modo giusto è quello di usare un oggetto SwingWorker Definisce un metodo che si occupa del lavoro in background, e Un secondometodocheinveceverrà eseguito nell EDT e che fa da ponte tra il background thread e la GUI 56
57 Link utili Resources/Slides/Chapter17.ppt Building Graphical User Interfaces with Java sysc-2004/w04/lectures/sysc a-Gui.ppt Graphical User Interfaces with Java 57
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
Introduzione (Swing vs AWT)
Swing Introduzione (Swing vs AWT) Swing Swing sono delle librerie introdotte a partire dalla versione 1.2 del JDK come evoluzione concettuale delle librerie precedenti (Abstract Window Toolkit (AWT)) AWT
Programmazione Java: Interfacce grafiche (GUI)
Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili
L interfaccia grafica in Java
L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato
L interfaccia grafica con Java
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)
Sviluppo di Interfacce Grafiche in Java
Sviluppo di Interfacce Grafiche in Java Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.
Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni
Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante
Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)
In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato
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
Interazioni col mondo: eventi
Interazioni col mondo: eventi Le interazioni di una GUI con il mondo esterno sono segnalate tramite eventi: click del mouse, inserimento di testo, selezione/attivazione... Gli eventi che memorizzano queste
Gestione di eventi ed interfacce utente grafiche
Gestione di eventi ed interfacce utente grafiche Eventi Ogni volta che l utente esegue un azione un clic del mouse la pressione di un tasto sulla tastiera la modifica di una finestra la selezione di un
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE La Gestione degli Eventi Ogni oggetto grafico è predisposto ad essere sollecitato in qualche modo dall utente (per esempio un pulsante può essere premuto).
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.
Programmazione in Java e gestione della grafica. Lezione 19
Programmazione in Java e gestione della grafica Lezione 19 2 Parliamo di Componenti della GUI (Graphics User Interface) OBIETTIVI 3 Imparare i principi su cui sono basate le GUI Costruire dellegui e gestire
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
Eventi di azione. // con interfaccia per eventi di azione
Eventi di azione (Interfaces ActionListener, Classes ActionEvent) Sono generati quando si premono bottoni, si selezionano voci di menù, si preme invio mentre si scrive in un campo di testo. In awt sono
Progettazione e Sviluppo di Interfacce Grafiche con Java Swing
Progettazione e Sviluppo di Interfacce Grafiche con Java Swing Esercitazioni di Progettazione del Software A.A. 2012 2013 Alessandro Russo e Massimo Mecella Sapienza Università di Roma Facoltà di Ingegneria
Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt
Swing Swing 1 Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt il primo package grafico (Java 1.0) indipendente dalla piattaforma... o quasi! Package javax.swing
maggio 2004 Stefano Sanna - gerda@crs4.it
java.awt awt.* Abstract Window Toolkit maggio 2004 Agenda Java e interfacce grafiche Caratteristiche di AWT Design e implementazione di interfacce grafiche Panoramica dei componenti disponibili Primitive
Esercitazioni Ingegneria del So2ware 4 - Programmazione Java Introduzione a Swing
Esercitazioni Ingegneria del So2ware 4 - Programmazione Java Introduzione a Swing Giordano Tamburrelli tamburrelli@elet.polimi.it hcp://giordano.webfacgonal.com 1 Lo sgle basato su eveng I componeng interagiscono
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Interfacce grafiche (in Java) Michele Tomaiuolo Interfacce grafiche
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.
Thread e Concorrenza in Java Swing
Thread e Concorrenza in Java Swing Esercitazioni di Progettazione del Software A.A. 2013 2014 Alessandro Russo Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
ESERCITAZIONI SU Java
ESERCITAZIONI SU Java PER IL CORSO DI SISTEMI PER L ELABORAZIONE DELL INFORMAZIONE Claudia Picardi Dipartimento di Informatica - C.so Svizzera 185-10149 - Torino Tel. 0116706818 - e-mail: picardi@di.unito.it
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create
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
Threads e Concorrenza in Java Swing
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
Gestione degli eventi in Java
Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.
Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA
Esercitazione del Corso di Informatica Grafica Strumenti per scrivere applicazioni in JAVA Perché Java Indipendenza dalla piattaforma Un applicazione scritta in Java può essere facilmente spostato da un
Sviluppo di Interfacce Grafiche in Java. Concetti di Base ed Esempi.
SAPIENZA Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Dispensa didattica Sviluppo di Interfacce Grafiche in Java. Concetti di Base ed Esempi. M. de Leoni, M. Mecella,
PROGRAMMAZIONE GRAFICA
PROGRAMMAZIONE GRAFICA Creazione di interfaccie utente grafiche, ovvero basate su concetti quali finestra, casella di testo, bottone, barra degli strumenti, menu. Elementi fondamentali: Componenti e composizione:
8. GUI : Graphics User Interface
pag.82 8. GUI : Graphics User Interface Un linguaggio ad oggetti ha come obiettivo principale quello di fornire al programmatore classi per la gestione di ambienti grafici a finestre. Se fino a questo
Corso Eclipse. Prerequisiti. 3 Window Builder
Corso Eclipse 3 Window Builder 1 Prerequisiti Conoscenza elementare ambiente Eclipse Conoscere la nomenclatura dei componenti delle interfacce grafiche Conoscere attributi e metodi dei principali componenti
Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06
Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es
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
UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE
IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili
Grafico della parabola
Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un
L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1
I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi
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 (?)
Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER.
Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER. 9 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente:
Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella
import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;
JAVA Interfacce grafiche per Applicazioni ed Applet
JAVA Interfacce grafiche per Applicazioni ed Applet Andrea BEI (andrea.bei@libero.it) Programmazione a finestre In JAVA è possibile sviluppare 2 tipi di programmi a finestre: APPLICAZIONI: Una Applicazione
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
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 alessandro.longheu@diit.unict.it Java Applet 1 Application VS Applet Una
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
23 - Graphical User Interface GUI (Cenni)
23 - Graphical User Interface GUI (Cenni) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo
APPLICAZIONI & APPLET
APPLICAZIONI & APPLET Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet Porta dinamicità alle pagine HTML "statiche" Viene eseguita dal browser,
Laboratorio di IUM. Lezione 3. La gestione degli eventi. Di Blasi Gianpiero - D.M.I. - Università di Catania
Di Blasi Gianpiero - D.M.I. - Università di Catania Laboratorio di IUM Lezione 3 La gestione degli eventi Cosa impareremo oggi? La filosofia della gestione gli eventi La gerarchia di eventi AWT Eventi
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile
I Canvas Tra i vari contenitori Java il Canvas (area di disegno o tela) è una semplice superficie di disegno particolarmente utile per visualizzare immagini o per effettuare altre operazioni grafiche.
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
Progettare un'applicazione di tipo GUI con tre menu e voci di menu (come nelle figure sottostanti):
Progettare un'applicazione di tipo GUI con tre menu e voci di menu (come nelle figure sottostanti): All'attivazione della voce Apri del menu File corrisponde la possibilità di aprire un file scelto con
Sesta parte: Come creare una lista di distribuzione e come gestirla dalla rubrica.
Microsoft Outlook 2007. Di Nunziante Esposito. `*************` Sesta parte: Come creare una lista di distribuzione e come gestirla dalla rubrica. `***********` Dopo aver visto la rubrica che in questo
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE. PIANIFICAZIONE La pianificazione è la prima fase. Questa è la più delicata
Le Applet Java. Le Applet
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
Programmazione Orientata agli Oggetti
Programmazione Orientata agli Oggetti Lezione 13 La programmazione ad oggetti si basa su due principi fondamentali ereditarietà polimorfismo Queste due proprietà consentono di definire nuovi tipi di dato
Esempio: si vuole creare e aprire una finestra sul desktop. La finestra è un oggetto istanza di
Swing Espresso. Uno scrittore è tanto più temibile quanto minore è il numero di pagine che gli sono necessarie per annoiare il suo lettore. Introduzione (breve). Questo testo non è un trattato esaustivo
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente e ai programmi di gestire i dispositivi e le periferiche
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
Tutorial SWING-AWT: Il Layout Manager GridBagLayout Di Michele de Nittis
Tutorial SWING-AWT: Il Layout Manager GridBagLayout Di Michele de Nittis Generalità... 2 Il principio di funzionamento... 2 Impiego degli oggetti di classe GridBagLayout e GridBagConstraints... 2 Posizionamento
Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD
Utilizzare il NetBeans GUI Builder Dott. Ing. M. Banci, PhD Lavorare con i Beans Queste slide ci guidano nel processo di creazione di un bean pattern nel progetto NetBeans 15 Giugno 2007 Esercitazione
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
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
V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1
Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,
Release MOVIO SCMS. Versione Tutorial. Commenti Dichiarazione di copyright
Titolo Tutorial MOVIO: Multilinguismo Release MOVIO SCMS 1.00 Versione Tutorial 1.00 Data 16/02/14 Autori e affiliation Rubino Saccoccio (Gruppometa) Commenti Dichiarazione di copyright Abstract Questo
Informatica d ufficio
Informatica d ufficio Anno Accademico 2008/2009 Lezione N 3 Microsoft Word - prima parte Microsoft Word E un Word processor,cioè un programma che consente di creare e modificare documenti. Prevede numerose
Autodesk Map parte I digitalizzazione e importazione dati
Autodesk Map parte I digitalizzazione e importazione dati Marco Negretti e-mail: marco.negretti@polimi.it http://geomatica.como.polimi.it V 5.1 10/10/08 I dati in Autodesk Map I dati vengono memorizzati
Utilizzo collegamento remoto
Utilizzo collegamento remoto Introduzione Il collegamento VPN (virtual private network) consente a PC collegati ad internet ma fisicamente fuori dalla rete interna regionale, di accedere, con le credenziali
LPR 2005/ 2006 Lezione n.9. Elementi di grafica per lo svolgimento del progetto Double Buffering Caricamento delle immagini Gestione degli eventi
LPR 2005/ 2006 Lezione n.9 Elementi di grafica per lo svolgimento del progetto Double Buffering Caricamento delle immagini Gestione degli eventi JAVA 2D PROGRAMMING Schermo : Matrice rettangolare composta
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI
CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Grafici. 1 Generazione di grafici a partire da un foglio elettronico
Grafici In questa parte analizzeremo le funzionalità relative ai grafici. In particolare: 1. Generazione di grafici a partire da un foglio elettronico 2. Modifica di un grafico 1 Generazione di grafici
Alcune idee sui sistemi software e la loro architettura
Luca Cabibbo Analisi e Progettazione del Software Alcune idee sui sistemi software e la loro architettura Capitolo 92 marzo 2016 Gli orchi sono come le cipolle. Le cipolle hanno gli strati. Gli orchi hanno
Esercizio 1: archivio CD e DVD
Esercizio 1: archivio CD e DVD Realizzare un applicazione Java per la creazione e la consultazione di un archivio di dischi ottici (CD e DVD). L applicazione riceve da standard input in maniera interattiva
EXCEL: FORMATTAZIONE E FORMULE
EXCEL: FORMATTAZIONE E FORMULE Test VERO o FALSO (se FALSO giustifica la risposta) 1) In excel il contenuto di una cella viene visualizzato nella barra di stato 2) In excel il simbolo = viene utilizzato
! 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/ mizzaro@uniud.it Programmazione, lezione 22 19 maggio
Progetto di Applicazioni Software
Progetto di Applicazioni Software Creare una GUI con JFC/Swing Claudio Corona Le slide sono state prodotte dall Ing. de Leoni per il corso di Progettazione del Software II Package Window JFrame Component
Modulo 2 Test di verifica
Modulo 2 Test di verifica Uso del computer e gestione dei file Test n. 1 Quando si riduce ad icona una finestra: è necessario prima salvare il suo contenuto si attiva un collegamento sul desktop rimane
Introduzione alla programmazione Object Oriented. Luca Lista
Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:
EXCEL. Alfabetizzazione Informatica Prof. GIUSEPPE PATTI
EXCEL Alfabetizzazione Informatica Prof. GIUSEPPE PATTI Operazioni base Excel è un programma che trasforma il vostro computer in un foglio a quadretti, così come Word lo trasformava in un foglio a righe.
Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1
Excel I fogli di calcolo Le funzioni base Gli strumenti www.vincenzocalabro.it 1 I fogli di calcolo Utilizzando questo programma possiamo costruire fogli di calcolo più o meno complessi che ci consento
Grafici e Pagina web
Grafici e Pagina web Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro. Quando si crea un grafico ogni riga
AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Creazione di un download manager in Java
34 Creazione di un download manager in Java Se ci si è collegati a Internet con una connessione telefonica, probabilmente si è sperimentata l interruzione di un download, con la necessità di ricominciare
RETI DI CALCOLATORI Linguaggio Java: La Grafica
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: La Grafica Prof. Franco Zambonelli Lucidi realizzati in collaborazione
L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:
Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti
Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Java Applet Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie
Scorciatoie. Mike McBride Jost Schenck Traduzione del documento: Samuele Kaplun Traduzione e revisione del documento: Luigi Toscano
Mike McBride Jost Schenck Traduzione del documento: Samuele Kaplun Traduzione e revisione del documento: Luigi Toscano 2 Indice 1 Scorciatoie 4 1.1 Introduzione.........................................
public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40
appunti delle lezioni Architetture client/server: applicazioni server
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante
Programmazione ad Oggetti
Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono
Il codice generato automaticamente da NetBeans
Il codice generato automaticamente da NetBeans La creazione di applicazioni in NetBeans si svolge principalmente con il supporto di strumenti grafici per la progettazione dell interfaccia utente, tramite
Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
Introduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;
EXCEL Modulo 3 I Grafici Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro; Quando si crea un grafico ogni
Formattare il testo con gli stili
Formattare il testo con gli stili Capita spesso di dover applicare ripetutamente la stessa formattazione, o anche modificare il colore, le dimensioni e il tipo di carattere, per dare risalto a un testo.
Manuale d utilizzo. Indice:
Manuale d utilizzo Indice: - L interfaccia (area di gestione) pag. 2 - Menu lingua pag. 3 - La gestione delle cartelle pag. 4 - Menu novità pag. 7 - I contatti pag. 8 - Gestione delle aree destra e sinistra
E possibile vedere tutti i dispositivi collegati al computer accedendo al pannello di controllo=>sistema=>dispositivi hardware.
Funzionalità del sistema operativo Le periferiche e i driver Cosa è un driver? E un programma che ha la funzione di guidare all uso di una periferica il sistema operativo. Ossia contiene le istruzioni