Il codice generato automaticamente da NetBeans



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

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

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

aiuto: dati 3 numeri stabilire maggiore e minore Pubblicato da filippo11-13 Gen :54

Applicazioni grafiche e finestre

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

Controllo del layout. Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout)

Laboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.

Programmazione Orientata agli Oggetti in Linguaggio Java

Le basi del linguaggio Java

Prova d Esame Compito A

Prova d Esame Compito A

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

GESTIONE DEGLI ERRORI

24 - Possibili approfondimenti

GESTIONE DEGLI ERRORI

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè

Wrappers e Autoboxing

RTTI Run-time type identification

Varie: final, visibilità, parametri di ingresso

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

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

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

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

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

Gerarchia delle classi Classi astratte Interfacce (Eccezioni) Laboratorio di Programmazione - Esercitazio 1

Modelli e strumenti per la generazione automatica di codice

I Metodi. Fondamenti di Informatica A-K

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream

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

hashmap.pdf Pag. 1/6 Cozzetto

Progettazione del Software

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface

Prova d Esame Compito A

Eclipse for the dummies. Primi passi nel mondo Eclipse Lorenzo Cioni LIP 1 Modulo a.a. 2006/2007

Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)

Autore: Bandiera Roberto novembre Realizzaree Programmi con Interfaccia Grafica

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

Lezione n.12 LPR Informatica Applicata GUI programming

Java thread, concorrenza

Corso di Reti di Calcolatori L-A

Dichiarazione di una classe. Dichiarazione ereditarietà

18 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce

Corso sul linguaggio Java

Note ed esercizi aggiuntivi

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

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

Programmazione Java Avanzata Programmazione Object- Oriented in Java

SISTEMI OPERATIVI. Java multithreading. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) LABORATORIO

Fondamenti di Informatica T-1. Guida al LAB4 Introduzione a JDK e Eclipse

Modello procedurale versus modello O-O

Alberi Binario in Java

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Laboratorio di Sistemi Ordinamento di oggetti Java

Corso di Progettazione del Software

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

Studente (Cognome Nome):

Esercizi sui Thread. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 24/09/2008. Università di Pisa

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

Eccezioni Precisazioni e approfondimenti

Corso sul linguaggio Java

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Problema del buffer limitato. Lorenzo Gallucci

Gestione degli eventi

Classi Wrapper. int Integer float Float char Char byte Byte double Double. classe "wrapper"

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

Esercitazione n 2. Obiettivi

ANALISI DEL FUNZIONAMENTO DEL PLUG-IN DI ECLIPSE MERLIN GENERATOR

Corso sul linguaggio Java

Commenti per documentare il codice (doc comments) I commenti speciali devono essere delimitati da /**... */.

Le command line di Java

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Lezione 5 Namespace e JavaDoc

Cosa è importante: pom.xml Goal Plug-in Repository

Laboratorio di reti I

Java SE 7. Introduzione.

Linguaggi di Programmazione I Lezione 10

Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 19 Array

Eventi e listener per i componenti grafici

Gruppi di Thread. Java threads (3) Gruppi di thread e Timer. Operating Systems. Operating Systems. Java threads 3. Java threads 3

Sezione: Upcast - downcast

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Unità B2 Gestione eventi 2

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Introduzione a Java e all'ambiente di sviluppo

Le command line di Java. Esercitazioni di Sistemi Operativi III Lezione n. 2

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Sezione: Costruttori. Costruttori

Transcript:

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 il posizionamento delle componenti e l impostazione delle proprietà. Anche l associazione alle componenti del codice per la gestione degli eventi è facilitato e reso in parte automatico dall ambiente di sviluppo grafico. Gli ambienti di sviluppo grafico mascherano al programmatore il codice sorgente e si occupano di generare automaticamente tutte le istruzioni necessarie per realizzare l interfaccia grafica definita nella finestra di Design. Prendendo come spunto il Progetto 2, la cui soluzione è stata presentata nel libro di testo, mostriamo il modo con cui NetBeans genera automaticamente il codice Java. In particolare consideriamo la classe SommaFrame, sottoclasse di JFrame, contenente la finestra grafica dell applicazione. Aprendo il file SommaFrame.java, si possono notare diversi elementi generati da NetBeans. 1) I commenti sono inseriti da NetBeans prima dell intestazione dei metodi, per esempio * Creates new form SommaFrame 2) Il metodo privato initcomponents contiene le istruzioni per creare le componenti grafiche e posizionarle nel contenitore. Per esempio, la creazione dell oggetto lbladdendo1 è gestita dalla seguenti istruzioni: lbladdendo1 = new javax.swing.jlabel(); lbladdendo1.settext("addendo1"); Per il posizionamento dell oggetto è stato usato il metodo addcomponent(lbladdendo1). 3) Il metodo btncalcolaactionperformed gestisce la pressione del pulsante. La sua intestazione, creata automaticamente da NetBeans, è private void btncalcolaactionperformed(java.awt.event.actionevent evt) 4) La dichiarazione degli oggetti associati alle componenti grafiche è posizionata alla fine della classe. private javax.swing.jbutton btncalcola; private javax.swing.jlabel lbladdendo1; private javax.swing.jlabel lbladdendo2; private javax.swing.jlabel lbltotale; private javax.swing.jtextfield txtaddendo1; private javax.swing.jtextfield txtaddendo2; private javax.swing.jtextfield txttotale; Si noti che il nome delle classi è riportato nella forma completa, preceduto cioè dal nome del package. Usando questo tipo di dichiarazione, NetBeans evita di dover specificare i comandi import all inizio della classe. 1

Il codice completo della classe SommaFrame generato da NetBeans è riportato di seguito. * To change this template, choose Tools Templates * and open the template in the editor. * * @author public class SommaFrame extends javax.swing.jframe { * Creates new form SommaFrame public SommaFrame() { initcomponents(); * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="generated Code"> private void initcomponents() { lbladdendo1 = new javax.swing.jlabel(); txtaddendo1 = new javax.swing.jtextfield(); lbladdendo2 = new javax.swing.jlabel(); txtaddendo2 = new javax.swing.jtextfield(); btncalcola = new javax.swing.jbutton(); lbltotale = new javax.swing.jlabel(); txttotale = new javax.swing.jtextfield(); setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close); lbladdendo1.settext("addendo1"); lbladdendo2.settext("addendo2"); btncalcola.settext("calcola"); btncalcola.settooltiptext(""); btncalcola.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { btncalcolaactionperformed(evt); ); lbltotale.settext("totale"); lbltotale.setcursor(new java.awt.cursor(java.awt.cursor.default_cursor)); lbltotale.setname(""); 2

javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane()); getcontentpane().setlayout(layout); layout.sethorizontalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgap(49, 49, 49).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(lblAddendo2).addComponent(lblAddendo1).addComponent(lblTotale)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(txtTotale).addGap(87, 87, 87)).addComponent(txtAddendo2).addGap(2, 2, 2)).addComponent(txtAddendo1, javax.swing.grouplayout.preferred_size, 200, javax.swing.grouplayout.preferred_size).addcontainergap()))).addgroup(javax.swing.grouplayout.alignment.trailing, layout.createsequentialgroup().addcontainergap(javax.swing.grouplayout.default_size, Short.MAX_VALUE).addComponent(btnCalcola).addGap(108, 108, 108)) ); layout.setverticalgroup( layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgap(40, 40, 40).addComponent(lblAddendo1).addComponent(txtAddendo1, javax.swing.grouplayout.preferred_size, 30, javax.swing.grouplayout.preferred_size)).addcomponent(lbladdendo2).addcomponent(txtaddendo2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)).addcomponent(btncalcola).addcomponent(txttotale, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size).addcomponent(lbltotale)).addcontainergap(84, Short.MAX_VALUE)) ); pack(); // </editor-fold> 3

private void btncalcolaactionperformed(java.awt.event.actionevent evt) { double num1, num2, totale; num1 = Double.parseDouble(txtAddendo1.getText()); num2 = Double.parseDouble(txtAddendo2.getText()); totale = num1+num2; txttotale.settext(""+totale); * @param args the command line arguments public static void main(string args[]) { * Set the Nimbus look and feel //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> * If Nimbus (introduced in Java SE 6) is not available, stay with the * default look and feel. For details see * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html try { for (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.uimanager.setlookandfeel(info.getclassname()); break; catch (ClassNotFoundException ex) { catch (InstantiationException ex) { catch (IllegalAccessException ex) { catch (javax.swing.unsupportedlookandfeelexception ex) { //</editor-fold> * Create and display the form java.awt.eventqueue.invokelater(new Runnable() { public void run() { new SommaFrame().setVisible(true); ); 4

// Variables declaration - do not modify private javax.swing.jbutton btncalcola; private javax.swing.jlabel lbladdendo1; private javax.swing.jlabel lbladdendo2; private javax.swing.jlabel lbltotale; private javax.swing.jtextfield txtaddendo1; private javax.swing.jtextfield txtaddendo2; private javax.swing.jtextfield txttotale; // End of variables declaration 5