esercitazione del corso di informatica graficaig/eserjava.pdf · traduce le istruzioni java, nella...

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

Upload: vudiep

Post on 19-Aug-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Esercitazione del Corso di Informatica Grafica

Strumenti per scrivere applicazioni in JAVA

Page 2: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Perché Java Indipendenza dalla piattaforma

Un’applicazione scritta in Java può essere facilmente spostato da un sistema di calcolo ad un altro.

Un programma Java viene compilato in un codice intermedio detto bytecode (file con estensione .class). I file di codice intermedio vengono interpretati dalla Java Virtual Machine(JVM). La JVM è un programma scritto mediante un qualunque linguaggio di programmazione dipendente dalla piattaforma, e traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare la piattaforma, ma il bytecode rimane lo stesso.

Page 3: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Perché JavaUso della memoria

Java mette a disposizione un meccanismo detto “Garbage Collector”. Il Garbage Collector, tiene traccia degli oggetti utilizzati da una applicazione Java, nonché delle referenze a tali oggetti. Ogni volta che un oggetto non è più referenziato per tutta la durata di uno specifico intervallo di tempo, viene rimosso dalla memoria e la risorsa liberata viene di nuovo messa a disposizione della applicazione che potrà continuare a farne uso. N.B.: Questo meccanismo è in grado di funzionare correttamente in quasi tutti i casi anche se molto complessi, manon si può dire che è completamente esente da problemi.

Page 4: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Concetti chiave

Classe descrizione generale del concetto (di libro)Libro Oggetto

Insieme di libri Classe Oggetto è un’istanza di classe (ossia un libro specifico)

Dati: Pagine (testo, note, immagini,...)

Azioni: sfogliare, leggere, ...

Page 5: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Concetti chiaveIn Java:

Una Classe descrive le caratteristiche (attributi) e il comportamento (azioni) comune all’insieme di oggetti che essa descrive.

Attributi

Metodi Azioni

Dati o variabili di istanza

Page 6: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Concetti chiave- Incapsulazione: meccanismo che lega il codice ai dati che manipola. L’accesso ai dati incapsulati è controllato da un’interfaccia ben definita.

- Ereditarietà: è il processo tramite il quale una sottoclasse acquisisce tutte le proprietà di ciascuna delle classi che la precedono nella gerarchia.

- Polimorfismo: consente di avere operazioni distinte ma con lo stesso nome(overriding e overloading dei metodi).

Page 7: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Java SDK

SDK Software Development Kit

JRE Java Runtime Environment

Sito:http://java.sun.com/

JVM(Java Virtual Machine)

Page 8: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Java SDK: TOOLS

javac – Compilatore Java

java – Interprete Java

appletviewer – Browser Java

javadoc – Tool per la documentazione automatica

jdb – Tool di debug java

Page 9: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Java

Java Source File(.java file)

Compiled Bytecode(.class file)

Java Compiler(javac)

Java Virtual Machine

(java, appletviewer)

Operating System

Java Runtime System

Host Machine

Programma JAVA

Page 10: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Come costruire programmi in Java

Si scrivono con:

- un editor di testi (come Blocco note, WordPad ...)

- un ambiente di sviluppo( JBuilder, JCreator…)

Si salvano con: Nome.java

Page 11: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Come costruire programmi in Java...

Si compilano con:

- il compilatore Java è denominato JAVAC fornito con SDK:

javac Nome.java

- se la compilazione ha esito positivo, viene prodotto:

Nome.class

Questo è il file di bytecode

Page 12: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Come costruire programmi inJava

Si interpretano con:

- per applicazioni Java, l’interprete è denominato JAVA fornito con SDK:

java Nome

dove utilizzo il file Nome.class che ho creato al momento della compilazione

Page 13: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Obiettivo

Page 14: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Cosa serve

• Java AWT (Abstract Windows Toolkit): package java.awt

• Java SWING: package javax.swing

Il SDK è dotato di uno dei seguenti packageper costruire GUI:

import javax.swing.*;

import java.awt.*;

Page 15: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Java AWTIl package Abstract Window Toolkit, mette a disposizione del programmatore una serie di classi e Interfacce per la gestione di GUI.

Java SWINGSwing è stato interamente scritto in Java, usando il packageawt, e mette a disposizione dell'utente tante classi presenti anche in awt, ma notevolmente migliorate e potenziate. Dispone, inoltre, di tante altre classi non presenti in awt.

Page 16: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Definizione di una classe JFrameIl pacchetto Swing mette a disposizione la classe JFrame per costruire una finestra di interazione. Ho bisogno di estendere la classe base, fornita dal pacchetto swing, così che la classe che vado a costruire ne erediterà metodi, eventi e proprietà. La nuova classe, manterrà tutti i dati ed i metodi membro della superclasse con la possibilità di aggiungerne di nuovi o modificare quelli esistenti.

public class Nome extends JFrame{}

Page 17: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Definizione di una classe JFrame

public class Nome extends JFrame{

}

type var1;

type varN;

return_type method_name1(type name1, [type name,...]){ istruzioni }...return_type method_nameM(type name1, [type name,...]){ istruzioni }

Dichiarazione dati

Definizione metodi

Page 18: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Componenti

JTextField

JLabel

JCheckBox

JLabel + ImageIcon

Page 19: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…ComponentiAll’interno della definizione di classe, dichiaro i differenti oggetti da visualizzare nel frame:

JLabel lblDrug = new JLabel("Drug Name:");JTextField txtDrug = new JTextField();JCheckBox chbTablets = new CheckBox("tablets");JLabel lblImg1 = new JLabel();

N.B.: Per usare queste classi facenti parte del pacchetto javax.swing, le devo importare con: import javax.swing.*;

Page 20: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Dichiarazione oggettiCreo una variabile che referenzia l’oggetto:

class_type prova;in questo modo prova è una variabile speciale che tiene traccia di istanze di tipi non primitivi. Conclass_type si intende una delle classi appartenente alle API di Java oppure definite dal programmatore.Nel nostro caso, per esempio:

JLabel lblDrug; utilizzo la classe Java “JLabel” appartenente al pacchetto Swing.

Page 21: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Dichiarazione oggettiCreata la variabile reference, passo ad istanziare l’oggetto utilizzando l’operatore new, nel seguente modo:

prova = new class_type() ;L’operatore new alloca la memoria necessaria per l’oggetto class_type e restituisce la locazione di memoria della entità creata, assegnandola alla variabile referenceprova. Questa locazione può essere utilizzata per accedere all’oggetto quando necessario.Nel nostro esempio:

lblDrug = new JLabel("Drug Name:");

Page 22: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

JPanelIn Java esiste il concetto di Pannello: si tratta di un generico contenitore di componenti, utilizzato essenzialmente per dare un ordine alla collocazione delle componenti nel frame.

Come dichiararlo:JPanel north =new JPanel();JPanel south =new JPanel(newGridLayout(2,3));

GridLayout implementa l’interfaccia LayoutManager, mi permette di dividere la componente in una griglia rettangolare.

Page 23: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...JPanel

North

South

Page 24: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Metodo jbInit()E’ buona regola organizzare l’insieme delle istruzioni utilizzate per inizializzare le componenti di un’interfaccia in un unico metodo:

void jbInit(){Istruzioni

}

in questo setto le proprietà di ogni componente, e lo aggiungo al frame principale.

Page 25: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Settare proprietà Pannellonorth.setLayout(null);

Setto il Layout a null, in maniera tale che possa gestire da codice le proprietà della componente,north.setBounds(0,0,230,150);

Ne setto posizione e dimensione con il metodo setBounds. north.setBackground(new Color(200,200,200));

Definisco il background del pannello, utilizzando le coordinate colore RGB nell’intervallo (0,…,255), tramite la classe Color()Color(int r, int g, int b)

yx

Page 26: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Settare proprietà JLabel

north.add(lblDrug);tramite il metodo add del pannello, aggiungo la JLabel al pannello north.

lblDrug.setBounds(5,5,70,25);Ne setto posizione e dimensione con il metodo setBounds.

Page 27: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Settare proprietà JCheckBoxnorth.add(chbTablets);

aggiungo la componente al pannello nordchbTablets.setBounds(70,30,70,25);

ne setto posizione e dimensionechbTablets.setFont(newFont("SansSerif",1,10));

setto il carattere della label associata alla componente, tramite l’utilizzo della classe

Font(String name, int style, int size)passata come parametro al metodo setFont

Page 28: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Settare proprietà JLabel con IconelblImg1.setIcon(

new ImageIcon("images/triangolo2.gif"));questo è il metodo usato per settare l’icona della JLabel, la sintassi è la seguente:

oggetto.setIcon(Icon icon)La classe Icon è un’interfaccia, di cui ho utilizzato l’implementazione ImageIcon, passata come parametro al metodo. Tale classe mi permette di creare un’immagine da uno specifico percorso.

Page 29: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Settare proprietà JLabel con IconelblImg1.setHorizontalAlignment(SwingConstants.CENTER);

Setto la posizione dell’immagine nella label della griglia, utilizzando la costante SwingConstants.CENTER

lblImg1.setVerticalTextPosition(SwingConstants.BOTTOM);

lblImg1.setHorizontalTextPosition( SwingConstants.CENTER);

setto la posizione verticale ed orizzontale del testo contenuto nella label con, rispettivamente SwingConstants.BOTTOM e SwingConstants.CENTER

Page 30: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Settare proprietà JLabel con IconelblImg1.setText("Interactions");

setto il testo che compare nella label nella posizione definita dai due metodi precedenti,

lblImg1.setFont(newFont("SansSerif",1,9));

ed il tipo di carattere con il metodo setFontlblImg1.setBounds(5,5,63,60);

setto le dimensioni della labellblImg1.setEnabled(false);

disabilito la label utilizzando il metodo “setEnabled” e passando come parametro false

south.add(lblImg1);ed infine, aggiungo la label al pannello sud

Page 31: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Settare proprietà JFramejava.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().

getScreenSize();Toolkit è una classe astratta del pacchetto AWT, tramite il metodo getScreenSize() ricavo la dimensione dello schermo salvandola nella variabile di reference screenSize.

setLocation((screenSize.width - 230) / 2,(screenSize.height - 300) / 2);

Posiziono il frame tenuto conto delle sue dimensioni e di quelledello schermo.

setSize(new java.awt.Dimension(230, 300));Definisco le dimensioni del frame.

pack()Ridimensiono il frame in base alle componenti in esso contenute.

Page 32: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Aggiungere controlli al JFrame

getContentPane().add(north)aggiungo al frame principale il pannello nord e sud, la sintassi del metodo utilizzato è la seguente:

getContentPane().add(name_component)

dove in questo caso name_component è il singolo pannello, ma potrebbe essere una delle componenti elencate precedentemente.

Page 33: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Costruttore di classe

I costruttori sono metodi speciali chiamati quando viene creata una nuova istanza di classe e servono ad inizializzarelo stato dell’oggetto, non restituiscono nessun tipo.

Nome(){try{

jbInit();}catch(Exception e){

e.printStackTrace(System.out);}

}

Nome della classe: Nome.java

Page 34: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Blocco try…catchCompito dell’istruzione catch è quello di gestire le eccezioni, ma è accompagnata da un blocco try, utilizzato come controllore di un blocco di istruzioni, potenziali causa di una eccezione. Try ha la sintassi seguente:

try{istruzioni

}catch(Exception var1){

istruzioni}…..

L’istruzione catch cattura solamente le eccezioni di tipo compatibile con il suo argomento e solamente quelle generate dalle chiamate a metodi racchiuse all’interno del blocco try.

Page 35: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Metodo main()Per eseguire la classe costruita, è necessario inserire nel codice della classe che si sta implementando un metodo standard, chiamato main(). Segue la sintassi:

class Name {public static void main(String args[]){

………}

}Questo metodo viene detto “entry point” dell’applicazione. Nel nostro caso:

public static void main(String args[]){Name frame = new Name();frame.show();

} EsempioEsempio

Page 36: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Bottoni in Java

Dichiarazione:JButton esempio = new JButton();JButton esempio = new JButton(String txt);

Come ogni componente di un JFrame, posso settarnele proprietà, posizionarlo nel frame.

Page 37: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Bottoni in Java: evento ClickIl JButton dispone di un metodo chiamato

void addActionListener(ActionListener l)

aggiunge al bottone lo specifico ActionListener per captare gli eventi associati ad esso.ActionListener è definito nel package java.awt.event, si tratta di un’interfaccia, i cui metodi vanno implementati.L’unico metodo è actionPerformed(), definito nel seguente modo:

public void actionPerformed(ActionEvent e)è questo il metodo che verrà invocato quando si cliccherà sul bottone. ActionEvent contiene tutte le informazioni riguardanti l’evento (per esempio il tasto pigiato in un gruppo di tasti)N.B.: Se nessun ActionListener è definito, non verrà eseguita alcuna azione al click del mouse.

Page 38: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Bottoni in Java: evento Clickvoid jbInit(){

Container cF;buttonPress bP = new buttonPress();………btnOK.addActionListener(bP);……….}class buttonPress implements java.awt.event.ActionListener {

public void actionPerformed(java.awt.event.ActionEvent e){if(e.getSource()==btnOK)

System.out.println("OK");……..

}}

buttonPress implementa l’interfaccia ActionListener

Passo come parametro l’istanza di buttonPressal metodo addActionListener()

Page 39: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Bottoni in Java: evento ClickbtnOK.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){// Stampa a video la stringa “OK”System.out.println("OK");

}});

Implemento il metodo actionPerformed() dell’interfaccia ActionListener direttamente nella chiamata all’addActionListener() del JButton().

N.B.: avrò una differente implementazione del metodo actionPerformed() per ogni bottone utilizzato

Page 40: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Commenti: JavaDocIn Java è possibile costruire automaticamente pagine HTML con la documentazione del codice scritto.

Cosa si deve fare:

- scrivere un codice commentato (saranno considerati i commenti che cominciano per /**)

- eseguire il comando

javadoc [<nomefile> | <nomepackage>]

vengono prodotti una serie di file HTML con la documentazione per <nomefile> o <nomepackage>

Page 41: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Commenti: JavaDoc

All’esecuzione del comando javadoc, vengono prodotti i seguenti files:

• uno per ogni classe public nei <nomefile>

• uno per ogni package in <nomepackage>

• uno con l’indice alfabetico dei nomi di classi, metodi attributi

• uno con l’indice di tutti i packages

• uno con la gerarchia di tutte le classi

Page 42: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Java for ImagingLe nuove API Java 2D estendono le funzionalità

di base del modello di imaging del pacchetto AWT per fornire un supporto per la grafica 2D e

l’imaging.Il pacchetto da considerare è

java.awtin particolare

java.awt.image

Da richiamare con:import java.awt.*;import java.awt.image.*;

Page 43: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Per iniziare…

Classe CANVASPermette di definire un’area all’interno di

un’applicazione, utilizzabile per le operazioni base per la grafica.

Può essere posizionata in un frame utilizzando i gestori dei layers.

Va estesa dall’utente, e va ridefinito il metodo paint()per eseguire un’applicazione personalizzata

Page 44: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Per iniziare…Operazioni consentite:

- disegnare linee- disegnare figure- posizionare immagini - gestire eventi legati alla grafica

La classe Canvas è parte del pacchetto AWT richiamabile con:

import java.awt.Canvas;

Page 45: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Per iniziare…import java.awt.*;import java.awt.event.*;

class MyExampleCanvas extends Canvas {

public MyExampleCanvas() {}

public void paint(Graphics g){

g.drawString("Prova canvas");g.drawline(1,1,mouseX,mouseY); //disegna una lineag.setColor(Color.red); //ne setta il colore

}

}…

}

Page 46: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

…Per iniziareimport java.awt.*;import java.awt.event.*;

class canvasView extends Frame {

MyExampleCanvas canvas = new MyExampleCanvas();

public canvasView () {}

public static void main(String args[]) {

Frame f = new Frame("The Graphic Canvas Frame");f.setLayout(new BorderLayout());f.add(canvas, BorderLayout.CENTER); …

}

}

Page 47: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

Links utili

• Java Mattone dopo Mattone: http://lab27.dmi.unict.it/jmonline/introduzione/indice.htm

• Guida al linguaggio Java: http://programmazione.html.it/java/

• Thinking in Java, Bruce Eckel: http://www.comment.it/bruceEckel/

• Tutorial su Java:http://java.sun.com/docs/books/tutorial/index.html

Page 48: Esercitazione del Corso di Informatica Graficaig/eserJava.pdf · traduce le istruzioni Java, nella forma di bytecode, in istruzioni native del processore locale. Si può cambiare

...Links utili

• JVM (Java Virtual Machine): http://java.sun.com/j2se/1.4.2/index.html

• Tools:– JCreator (free)– JBuilder– Eclipse (free)