Laboratorio di sistemi Fortune Java/Jsp
|
|
- Carla Berardi
- 5 anni fa
- Visualizzazioni
Transcript
1 Ricordiamo che in Ubuntu il comando fortune impartito da shell produce una frase umoristica, un anedotto o una frase bizzarra ecc. Si può installare e localizzare nella lingua italiana mediante il comando apt-get. Proviamo anche noi a scrivere due differenti versioni dello stesso applicativo, ovviamente usando il linguaggio di programmazione java; il primo sarà dotato di una GUI (interfaccia utente grafica) mentre l'altro consisterà in una web application e manderà il proprio output all'interno di un browser come IE o Firefox; lasciamo a voi il compito di scrivere la versione da riga di comando. Come prima cosa, supponiamo che le frasi (e i relativi autori) siano archiviati in un file testuale (fortune.txt). Frase e autore sono separati dal carattere come nell'esempio. -"In realta', agente, il mio nome e' Bond. James Bond". -"Gia', e io sono Superman. E lei e' sempre in arresto". Roger Moore, da "007 Bersaglio mobile" Così facendo possiamo poi aggiungere a piacimento le frasi più simpatiche ed eliminare quelle col tempo ritenute meno interessanti. Facciamo in modo che l'utente abbia l'opportunità di scegliere a caso una delle frasi precaricate nel database. fortune.pdf Pag. 1/13 Cozzetto
2 Progettiamo due classi Frase e ListaFrasi: Classi di supporto package fortunejavaapp; import java.util.scanner; /** * maurizio public class Frase { String contenuto; String autore; Frase() { contenuto = "Tanto va la gatta al lardo che ci lascia lo zampino"; autore = "Anonimo"; Frase(String contenuto, String autore) { this.contenuto = contenuto; this.autore = autore; Frase leggifrase() { Scanner sc = new Scanner(System.in); String content = sc.next(); String author = sc.next(); return new Frase(content, public String tostring() { return contenuto+" \n-- "+autore; void stampafrase() { System.out.println(toString()); // fine classe Frase fortune.pdf Pag. 2/13 Cozzetto
3 /* * ListaFrasi.java * package fortunejavaapp; import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.util.random; import java.util.stringtokenizer; /** maurizio public class ListaFrasi { public Frase[] frasi; public int numfrasi = 0; /** Numero massimo di frasi che è possibile caricare in memoria public static final int MAX_FRASI = 100; /** Costruttore nullo public ListaFrasi() { frasi = new Frase[MAX_FRASI]; /** Costruttore con parametro il numero di frasi public ListaFrasi(int n) { if (n>=1 && n<=max_frasi) frasi = new Frase[n]; else frasi = new Frase[MAX_FRASI]; /** Genero una frase casuale tra quelle caricate in memoria public Frase getfraseacaso() { Random generatore = new Random(); int i = generatore.nextint(numfrasi); return frasi[i]; /** Aggiungo una nuova frase public void aggiungifrase(frase f) { if (numfrasi<max_frasi && f!=null) { frasi[numfrasi++]=f; fortune.pdf Pag. 3/13 Cozzetto
4 /** Prelevo dal disco le frasi e le porto in RAM public int caricafrasi(string file) throws FileNotFoundException, IOException { int numrecord=0; try { // apertura del file in lettura FileReader fr = new FileReader(file); BufferedReader bfr = new BufferedReader(fr); // lettura di tutti i record e caricamento nel vettore String s = bfr.readline(); while (s!=null) { StringTokenizer st = new StringTokenizer(s," "); Frase frase = new Frase(); frase.contenuto = st.nexttoken(); frase.autore = st.nexttoken(); aggiungifrase(frase); numrecord++; s = bfr.readline(); // fine while // chiusura bfr.close(); fr.close(); catch(filenotfoundexception e) { throw new FileNotFoundException(e.getMessage()); catch (IOException e) { throw new IOException(e.getMessage()); return numrecord; // fine metodo caricafrasi() // fine classe ListaFrasi fortune.pdf Pag. 4/13 Cozzetto
5 Versione GUI Nel caso di una GUI, la frase appare in una textarea e l'utente sceglie la frase successiva cliccando sul pulsante Random come in figura. Per comodità, ipotizziamo che tutto il nostro database sia caricato interamente in memoria. Il file fortune.txt si trova nel package risorse. /* * Fortune.java package fortunejavaapp; import java.awt.flowlayout; import java.io.filenotfoundexception; import java.io.ioexception; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.joptionpane; import javax.swing.jtextarea; /** * maurizio public class Fortune extends JFrame { ListaFrasi lf = new ListaFrasi(); JTextArea frase; JButton random; /** Costruttore public Fortune(String title) { this.settitle(title); int numrecord = 0; try { numrecord=lf.caricafrasi(system.getproperty("user.dir") +"/build/classes/risorse/fortune.txt"); catch (FileNotFoundException e) { fortune.pdf Pag. 5/13 Cozzetto
6 JOptionPane.showMessageDialog(null, "Il file non è stato trovato: "+e.getmessage()); System.exit(1); catch (IOException e) { JOptionPane.showMessageDialog(null, "Vi è un errore di I/O: "+e.getmessage()); System.exit(1); JOptionPane.showMessageDialog(null, "Sono stati caricati "+numrecord+" record dal database fortune.txt"); inizializzacomponenti(); // istruzione necessaria altrimenti la finestra continua ad essere // residente in memoria this.setdefaultcloseoperation(windowconstants.exit_on_close); this.pack(); this.setvisible(true); // fine Costruttore /** predispone il layout grafico e istanzia l'oggetto delegato a gestire l'evento click sul pulsante void inizializzacomponenti() { random = new JButton("Random"); frase = new JTextArea(" L'amore e' come una clessidra: \nquando si riempie il cuore, si svuota il cervello.\n\n--anonimo"); /** Impostiamo il layout FlowLayout this.setlayout(new FlowLayout()); /** Aggiungo al frame il testo this.add(frase); /** Aggiungo al frame il bottone this.add(random); /** Creo un ascoltatore per il bottone GestorePulsante gp = new GestorePulsante(frase, lf, this); /** Registro il gestore presso il bottone random.addactionlistener(gp); // si può anche scrivere più brevemente // random.addactionlistener(new GestorePulsante(frase, lf, this)); // fine inizializzacomponenti // fine classe Fortune fortune.pdf Pag. 6/13 Cozzetto
7 /* * GestorePulsante.java * package fortunejavaapp; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jtextarea; /** * maurizio class GestorePulsante implements ActionListener { JTextArea frase; ListaFrasi lf; JFrame frame; /** Costruttore con 3 parametri public GestorePulsante(JTextArea frase, ListaFrasi lf, JFrame frame) { this.frase = frase; this.lf = lf; this.frame = frame; /** L'interfaccia ActionListener dispone di un solo metodo da implementare actionperformed appunto public void actionperformed(actionevent evt) { /* se l'evento è stato generato da un pulsante if (evt.getsource() instanceof JButton) { frase.setlinewrap(true); /* Genero una frase a caso tra quelle disponibili in RAM Frase f = lf.getfraseacaso(); if (f!=null) frase.settext(f.contenuto+"\n\n-- "+f.autore); frame.pack(); // fine metodo gestore dell'evento // fine classe GestorePulsante fortune.pdf Pag. 7/13 Cozzetto
8 /* * Main.java package fortunejavaapp; import javax.swing.windowconstants; /** maurizio public class Main { public static void main(string[] args) { Fortune f = new Fortune("Versione grafica di 'Fortune'"); // fine metodo main // fine classe Main Versione Web Nel caso di una versione web, le cose cambiano leggermente. Intanto il caricamento delle frasi deve avvenire la prima volta che l'utente si collega alla pagina. Per il messaggio, usiamo un po' di Javascript e formattiamo la frase usando i fogli di stile. Il codice delle due classi non cambia. Ipotizziamo inoltre che il file fortune.txt sia contenuto nel package risorsepkg. Dal momento che il caricamento delle frasi in memoria deve avvenire una sola volta, fortune.pdf Pag. 8/13 Cozzetto
9 ricorriamo ad una variabile di sessione. Se non ha nessun valore, vuol dire che è la prima volta che carichiamo la pagina per cui va fatto il caricamento delle frasi in Ram, altrimenti vuol dire che la fase di caricamento è già stata effettuata per cui il sistema genera una frase a caso. Per generare altre frasi è sufficiente cliccare sul pulsante Aggiorna del browser. Pagina index.jsp <%@page contenttype="text/html" pageencoding="utf-8"%> <%@page errorpage="gestioneerrori.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>fortune - Versione web</title> <style> body { font-family: Verdana, "Trebuchet MS"; font-size: 11pt; #box { width: 400px; border: 1px blue dashed; padding: 5px; margin-left: auto; margin-right: auto; fortune.pdf Pag. 9/13 Cozzetto
10 .centro { text-align: center; </style> </head> <body> <h3 class="centro">versione web di Fortune</h3> <div id="box"> <% /* è la prima volta che carico la pagina if (session.getattribute("lf")==null) { /* istanzio l'oggetto lf che rappresenta le frasi fortunepkg.listafrasi2 lf = new fortunepkg.listafrasi2(); /* carico tutte le frasi in memoria int numrecord=lf.caricafrasi(application.getrealpath("/")+"web- INF/classes/risorsePkg/fortune.txt"); /* ne prendo una a caso fortunepkg.frase f = lf.getfraseacaso(); /* la visualizzo nel browser if (f!=null) { out.println(f.contenuto+"<br/><br/>-- "+f.autore); /* imposto la variabile di sessione lf session.setattribute("lf", lf); String s = "<script>alert('sono state caricate "+numrecord+ " frasi');</script>"; out.println(s); else { /* non è la prima volta che accedo alla pagina fortunepkg.listafrasi2 lf = (fortunepkg.listafrasi2) session.getattribute("lf"); /* prendo una frase a caso fortunepkg.frase f = lf.getfraseacaso(); /* la visualizzo nel browser if (f!=null) { out.println(f.contenuto+"<br/><br/>-- "+f.autore); // fine if %> </div> </body> </html> fortune.pdf Pag. 10/13 Cozzetto
11 Pagina gestioneerrori.jsp contenttype="text/html"%> pageencoding="utf-8"%> iserrorpage="true" %> import="java.io.printwriter" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <% PrintWriter writer=new PrintWriter(out); %> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>pagina di errore</title> <style type="text/css"> <!-- body,td,th { font-family: Trebuchet MS; font-size: 10pt; --> </style> </head> <body> <h3>gestione degli errori</h3> <p>si è verificato il seguente errore: <%=exception.getmessage()%></p> </body> </html> Nella versione web, abbiamo usato in realtà al posto della solita classe ListaFrasi (che avremmo potuto ugualmente usare senza alcuna modifica) la classe ListaFrasi2 che ottimizza lo spazio in RAM allocando lo spazio strettamente necessario (nella classe facciamo uso degli ArrayList e dei Generics). La logica nel complesso tuttavia non cambia. /* * ListaFrasi2.java * package fortunepkg; import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.util.arraylist; import java.util.random; import java.util.stringtokenizer; fortune.pdf Pag. 11/13 Cozzetto
12 /** maurizio public class ListaFrasi2 { ArrayList<Frase> frasi; int numfrasi =0; /** Costruttore senza parametri public ListaFrasi2() { frasi = new ArrayList<Frase>(); /** Costruttore con parametro il numero di frasi public ListaFrasi2(int n) { if ( n >= 1 ) frasi = new ArrayList<Frase>(n); else frasi = new ArrayList<Frase>(); /** Genero una frase casuale tra quelle caricate in memoria public Frase getfraseacaso() { Random generatore = new Random(); int i = generatore.nextint(numfrasi); return frasi.get(i); // non è necessario il cast visto che // usiamo i generics /** Aggiungo una nuova frase public void aggiungifrase(frase f) { if ( f!= null ) { frasi.add(f); numfrasi++; /** Prelevo dal disco le frasi e le porto in RAM public int caricafrasi(string file) throws FileNotFoundException, IOException { int numrecord=0; try { // apertura del file in lettura FileReader fr = new FileReader(file); BufferedReader bfr = new BufferedReader(fr); // lettura di tutti i record e caricamento nell'arraylist String s = bfr.readline(); while (s!= null) { fortune.pdf Pag. 12/13 Cozzetto
13 StringTokenizer st = new StringTokenizer(s," "); Frase frase = new Frase(); frase.contenuto = st.nexttoken(); frase.autore = st.nexttoken(); aggiungifrase(frase); numrecord++; s = bfr.readline(); // fine while // chiusura bfr.close(); fr.close(); catch(filenotfoundexception e) { throw new FileNotFoundException(e.getMessage()); catch (IOException e) { throw new IOException(e.getMessage()); return numrecord; // fine metodo caricafrasi() // fine classe ListaFrasi2 fortune.pdf Pag. 13/13 Cozzetto
Applicazioni grafiche e finestre
Applicazioni grafiche e finestre / SampleFrame.java package sampleswingjavaapp; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton;
DettagliLaboratorio di Sistemi Accesso a un database Jsp [NetBeans]
Modifichiamo l applicativo ListaSupereroiWebApp in modo che i dati dei supereroi non vengano caricati staticamente mediante delle istruzioni di assegnamento ma dinamicamente leggendo i record della tabella
DettagliLaboratorio di Sistemi Accesso a un database MySQL NetBeans [Jsp]
Figura 1 Vogliamo realizzare una pagina web simile alla precedente: i dati si trovano nel db MySQL simpsons_db all'interno della tabella simpsons_tbl simpsons_mysql.pdf Pag. 1/12 Cozzetto Figura 2 - La
DettagliLaboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans]
Figura 1 - La pagina input_user.jsp appena caricata Figura 2 - Lascio vuoti entrambi i campi o immetto un solo valore Figura 3 - Immetto dei valori che non esistono nel database autent_utente_scriplet.pdf
DettagliLaboratorio di sistemi Information hiding Jsp [Java]
Vogliamo realizzare una pagina web che ci consenta di filtrare i record della tabella books del database MySQL shop. Fig. 1 Tabella books, database MySQL shop Il filtro viene scritto direttamente dall'utente
DettagliLaboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]
Vogliamo progettare un prototipo di applicazione web che consenta ad un utente di ottenere, selezionando l'autore da una casella combinata, l'elenco dei libri scritti da quell'autore, come nelle figure
DettagliLaboratorio di Sistemi Serializzare mediante file Java
Torniamo ancora una volta sul problema della serializzazione degli oggetti e riconsideramo il seguente modello a oggetti. Fig. 1 Modello a oggetti della nostra applicazione Per semplicità supponiamo che
DettagliProgrammazione in Java
Programmazione in Java Settima lezione Cristian Del Fabbro Lezione di oggi Esercizio sull'utilizzo delle classi viste nella quarta lezione (Vector, StringTokenizer, file su disco, ecc.) Alcune classi per
DettagliLaboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A
Sezione A In NetBeans creiamo una applicazione web nel solito modo, confermando tutte le impostazioni proposte senza alcuna variazione. Per costruire una libreria di tag personalizzata, costruiamo innanzitutto
DettagliLaboratorio di Sistemi CRUD con MySQL JSP (Java)
Il problema Vogliamo realizzare un applicativo web che consenta di inserire, modificare e cancellare i record della tabella libri_tbl (database MySQL biblio_db). In questi casi, parliamo di applicativo
DettagliLaboratorio di sistemi Strutture dati ricorsive (2) Java
Liberamente adattato da Il linguaggio Java di Agostino Lorenzi, Giuseppe Facchetti, Andrea Rizzi Vogliamo rappresentare la seguente struttura dati (una lista concatenata, fatta da nomi di amici e numeri
DettagliLaboratorio di sistemi MVC Jsp [NetBeans]
Estratto da "http://it.wikipedia.org/wiki/model-view-controller" Definizione Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale
DettagliLaboratorio di Sistemi Serializzazione JSP (Java)
Il problema Vogliamo realizzare un prototipo di applicazione web che visualizzi l'elenco degli album relativi ad un certo artista e, per ogni album, l'elenco dei brani in esso contenuti. Per farlo sfruttiamo
DettagliLezione n.12 LPR Informatica Applicata GUI programming
Università degli Studi di Pisa Lezione n.12 LPR Informatica Applicata GUI programming 19/05/2008 Laura Ricci UNA SEMPLICE INTERFACCIA PER INSTANT MESSAGING JAVA GUI: COMPONENTI BASE import java.awt.*;
DettagliLaboratorio di sistemi JSTL e database Jsp [NetBeans]
Elenco dei film ottenuti usando la libreria JSTL 1.1 elenco_film_jstl.pdf Pag. 1/18 Cozzetto Inserisco i dati di un film. Prima dell'inserimento i dati vengono confrontati con quelli della tabella film_tbl
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
DettagliNote ed esercizi aggiuntivi
Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi 16. Stream di I/O Esempio. Visualizza sul monitor il contenuto di un file di caratteri. int i; while ((i
DettagliEccezioni Precisazioni e approfondimenti
Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di
DettagliLiberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice
Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice Vogliamo realizzare un'applicazione di tipo CRUD (Create, Read, Update,
DettagliCreazione, eliminazione, lettura e scrittura di file di testo
Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file
DettagliLaboratorio di Sistemi Fattoriale di un numero Jsp [Java]
Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema
DettagliGUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali
GUI e java swing Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Elmenti della GUI Eventi e listener contenitori componenti layout manager caratteristiche
DettagliIl sito della MultisalaOz [ dispone di un archivio dei film già proiettati.
Il sito della MultisalaOz [http://www.multisalaoz.it] dispone di un archivio dei film già proiettati. In questa figura, potete osservare un sito clone. L utente, selezionando una lettera dell alfabeto
DettagliLaboratorio di sistemi Pacchetti PEAR: DB e HTML_Template_IT Php
Uno dei problemi che si deve affrontare nel progetto delle pagine web è quello della commistione tra parte grafica (che si colloca al livello di presentazione) e il codice (che si colloca al livello della
DettagliCapitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2
Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;
DettagliLaboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.
Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Di solito se abbiamo la struttura di una classe con gli attributi e i metodi possiamo istanziare
DettagliIstruzioni per la creazione delle pagine Contratto e Scheda
Istruzioni per la creazione delle pagine Contratto e Scheda Indice 1 Introduzione 3 2 Strumenti di aiuto per la creazione delle pagine 3 3 Inserimento codice HTML creato esternamente 5 2 1 INTRODUZIONE
DettagliLaboratorio di sistemi Prima Web Application JSP [Java]
Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File
DettagliLaboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]
Vogliamo realizzare un prototipo di applicativo web che consenta a un gruppo di utenti di autenticarsi. In prima istanza, carichiamo in memoria tutti gli utenti ammessi ad accedere al sistema, in seconda
DettagliEsercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:
Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di
DettagliLaboratorio di sistemi MVC versione 2 Jsp (NetBeans)
Definizione Adattato da "http://it.wikipedia.org/wiki/model-view-controller" Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale
DettagliLa nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:
Esercitazione N4: Costruzione di una applicazione GUI utilizzando i componenti di base per realizzare l input e l output e cioè Label, TextBox, TextArea Button e Panel (Pannelli) I componenti che utilizzeromo
DettagliLaoratorio di sistemi Estrazione di una carta senza ripetizione Java [NetBeans]
Figura 1 - Estraggo la prima carta (l'ultima di un mazzo ordinato) Figura 2 - Michio il mazzo e ne estraggo un'altra estrai_carta_v2.pdf Pag. 1/9 Cozzetto Figura 3 - Una volta estratte tutte le carte,
DettagliEsercitazione n 6. Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java:
Esercitazione n 6 Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java: il package javax.swing (JFrame, JPanel, JButton, ) java.util.eventobject e sue
DettagliIII Appello - 4 giugno 2009
Corso di laurea in Comunicazione digitale Fondamenti di architettura e programmazione AA 2008/09 III Appello - 4 giugno 2009 Cognome Matricola Nome 1 (4 punti) Scrivete il programma Java, Esercizio, che
DettagliGerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1
Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1 Gerarchia delle classi Una sottoclasse eredita metodi, variabili, etc. dalla superclasse... Per
DettagliCreazione, eliminazione, lettura e scrittura di file di testo
Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 3 Parametri e browser 1 Prerequisiti Elementi di base HTML Programmazione Java Interfacce grafiche e gestione eventi 2 1 Introduzione In questa Unità vediamo
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliAutore: 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
DettagliLaboratorio di Sistemi Ordinamento di oggetti Java
Java mette a disposizione diverse interfacce predefinite. Un esempio è l'interfaccia Comparable e consente di confrontare un oggetto con un altro. Per far questo dobbiamo implementare il metodo compareto().
DettagliLaboratorio di sistemi SELECT e checkbox Jsp [Java]
Fig. 1 - Vogliamo visualizzare book_id, autore e titolo dalla tabella books del database shop Fig. 2 - Tabella books select_checkbox.pdf Pag. 1/5 Cozzetto Fig. 3 - Abbiamo due record in output File index_1.jsp
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA8 B2 Accesso diretto 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione Organizzazione ed accesso ai file 2 1 Introduzione
DettagliControllo del layout. Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout)
Controllo del layout Ovvero, controllo della disposizione dei componenti all interno di una finestra Abbiamo visto applicazioni con una disposizione di componenti elementare I pannelli che abbiamo utilizzato
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Conclusioni versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliINTERFACCE 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).
DettagliAnno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata
Iterazioni Anno Accademico 2003/04 Docente modulo 1: Lo statement while while (condition) statement; Ripete l esecuzione di statement fino a che la condizione e` verificata while (balance < targetbalance)
DettagliEventi 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
DettagliEsercitazione 2. Java:
Esercitazione 2 Java: Eccezioni @andreamocci Casi Eccezionali (1) /* * Produce un numero complesso a partire dalla sua forma polare */ public static Complex frompolarform(double abs, double phase) { /*
DettagliL Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete
Le GUI in Java L Abstract Windowing Toolkit Fino ad ora abbiamo usato le classi del pacchetto JavaBook per realizzare semplici interfacce grafiche (GUI) Si tratta di classi facili da usare...... ma che
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Eventi versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliLaboratorio di Sistemi DAO JSP (Java)
Il problema Vogliamo progettare una piccola web application che ci consenta di ottenere, scegliendo un autore da una combo box, l'elenco dei libri scritti da quell'autore (è un esempio già trattato in
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Eccezioni: Gestione dei Flussi versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliLETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream
LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste
DettagliGestione delle eccezioni
Gestione delle eccezioni Raffaella Brighi, a.a. 2007/08 Ereditarietà Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. Casi di insuccesso Vi sono numerosi problemi
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliCorso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione
Domanda n. 1 Corso: Fondamenti di Informatica (Canale 5) a.a. 2016-17 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab10 Argomento: Algoritmi e complessita'
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 C2.1 Animazioni 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Utilizzo di elementi grafici ed eventi Utilizzo classe Canvas 2 1 Introduzione
DettagliAPPLICAZIONI & 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,
DettagliInformatica Ereditarietà Java. Ereditarietà
Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi
DettagliFinestra.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.*;
DettagliLaboratorio di Sistemi Classi e relazioni Java
package carrelloconsoleapp; import javax.swing.imageicon; /* *.java /** * * @author maurizio public class { private String id; private String descrizione; private double prezzo; private int percsconto;
DettagliIterazioni. L istruzione while. while (condition) istruzione
Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliLaboratorio di Sistemi Ereditarietà Java
L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi definiti
DettagliCorso 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
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo
DettagliCreare un portale personalizzato
1 Creare un portale personalizzato Passi da seguire 1) Aprire la pagina: http://www.term-minator.it/modello.html 2) Scaricare modello : 2) Aprire il file modello con blocco note : 1 2 3) Modificare il
DettagliProgrammazione in rete e laboratorio
Programmazione in rete e laboratorio 2001-02 JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Eccezioni Categorie di eccezioni checked unchecked Gestione delle eccezioni Clausola throws Costrutto try - catch - finally Comando
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliProgrammazione II: Esami Svolti
Raccolta di Codici per imparare a programmare in Java in modo tale da affrontare e superare con successo l esame di Programmazione II Programmazione II: Esami Svolti A cura di: Emanuele Cennamo Nel seguente
DettagliApplication VS Applet
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 20 - Java Applet 1 Application
DettagliRaffaella 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
DettagliProgrammazione in rete e laboratorio
Programmazione in rete e laboratorio JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java fornisce
DettagliGestire le eccezioni. Lezione XI
Gestire le eccezioni Lezione XI Scopo della lezione Studiare il meccanismo di gestione delle eccezioni Implementare nuove eccezioni IX-B.2 Tipi di errori Errori rilevati in fase di compilazione: errori
DettagliInput. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei
Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite
DettagliParadigmi di programmazione (sperimentazioni)
Paradigmi di programmazione (sperimentazioni) 2000-01 JAVA Alberto Martelli Programmazione grafica PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI
DettagliEccezioni. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.
Eccezioni Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it 2 Eccezione Evento anormale che avviene durante l'esecuzione del programma
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java : Conclusioni versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliDivisions e spans. Esercizio. <html> <head> <title>esempio uso del tag span</title> <style> <!--
Divisions e spans L applicazione degli stili può essere eseguita anche su sezioni di testo tramite i tag div e span. Div suddivide il testo analogamente a come si suddivide un articolo in titolo, sottotitolo,paragrafi,
DettagliInformatica Interfacce Java
Una interfaccia (interface) è un tipo di dato, dichiarato con il costrutto interface del linguaggio Java, che deve essere interamente implementato in una oppure più classi differenti. Lo scheletro per
Dettagli24 - Possibili approfondimenti
24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliFONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,
DettagliCorso di Telematica II
Corso di Laurea Triennale in Ingegneria Informatica ed Ingegneria delle Telecomunicazioni Corso di Telematica II Matricola Nome, Cognome Data Orale... Prova scritta del 21/07/2005 Si implementi, in linguaggio
DettagliProgrammazione a Oggetti Lezione 11. Eccezioni e Packages
Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:
DettagliProva scritta del 13 luglio 2010
Matricola: Cognome: Nome: Insegnamento: LAB Basi di dati LAB Basi di dati e web Basi di dati e web 4 CFU Laboratorio di Basi di dati (Laboratorio di Basi di dati e Web) Prova scritta del 13 luglio 2010
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo in Azione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliFlussi, lettori e scrittori
Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,
DettagliI 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.
DettagliJava 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
DettagliTrasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)
Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database
DettagliJAVA GENERICS. Angelo Di Iorio Università di Bologna
JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal
DettagliRETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
Dettagli