Newsgroup: it.comp.java
Titolo: [INFORMAZIONI PER PRINCIPIANTI] it.comp.java

Kit di pronto soccorso per domande java
---------------------------------------
Non sapete cos'e' Java, ma vi interessa. Sapete cos'e' Java, ma non sapete 
qual'e' la classe/metodo/funzione che fa una certa cosa. Questo documento fa 
per voi. *Prima* di domandare sul ng, leggete.
1. FAQ------
La FAQ del gruppo si trova a 
http://space.tin.it/computer/csadun/javafaq.html
e viene postata in formato testo circa una volta al mese su IT.FAQ e 
IT.COMP.JAVA.
Provate a darci un'occhiata, magari c'e' una risposta che vi illumina:
se non e' attiva nel vostro newsreader, usate la versione HTML o cercate a 
www.dejanews.com
 il titolo "[FAQ] it.comp.java".
E se la risposta non c'e', aggiungere alla vostra domanda al ng "ho letto la 
faq ma non ho trovato.." e' come sorridere alla cameriera: mette in una buona 
disposizione d'animo, e assicura un servizio migliore. ;-)
2. Che metodo si usa per fare <X> ?
-----------------------------------
Come trovare la funzionalita' X che vi serve? Semplice! Avete circa cinque 
chili di materia sopra le spalle: usatela.
Il sito 
http://java.sun.com
 e' la principale fonte di informazioni.
Su 
http://java.sun.com/products/jdk/1.1/docs/api/packages.html
	(per JDK1.2 
sostituite 1.1 con 1.2 nell'URL) trovate la documentazione di TUTTE le API 
standard ("core") Java. La documentazione e' scaricabile e ci sono 
mirror italiani (cfr. la faq).
La vostra X riguardera' QUALCOSA: grafica, comunicazione su rete, I/O, accesso 
a database, etc.
La documentazione, guarda un po' :^), e' organizzata proprio secondo questi 
GRUPPI LOGICI; molti nomi sono autodescrittivi, ma per venirvi incontro ecco 
una descrizione velocissima:
APPLET   - classi per supportare le applet
AWT      - classi per interfaccia grafica e grafica in generale (abstract 
           window toolkit)
BEANS    - classi per componenti riusabili, stile visual basic o OCX/ACTIVEX
IO       - indovinate? :)
LANG     - classi generiche su linguaggio (interi, stringhe, etc) ed il suo 
 	      supporto runtime (accesso al sistema operativo, threads etc)
NET      - indovinate? :)
RMI      - classi per oggetti distribuiti (remote method invocation)
SECURITY - anche questo e' difficile.. :)
SQL      - classi per accesso a database
TEXT	 - classi per formattazione di testo, concatenazioni etc.
UTIL	 - classi di utilita': strutture dati tipiche e miscellanea
UTIL.ZIP - classi per gestire file ZIP e JAR
Per prima cosa dobbiamo.. 
a) ..ragionare
Per scegliere dove cercare, ragionate!! ANCHE se state facendo un'applet, se 
avete bisogno di sapere le dimensioni dello schermo andrete a cercare in AWT     
e non in APPLET, dato che suddette dimensioni NON sono caratteristiche uniche     
di un'applet, ma piuttosto una caratteristica "grafica" generica. Quindi ora   
possiamo..
b) ...ragionare e leggere
In ciascun gruppo logico ci sono parecchie classi. Come trovare quella giusta? 
Ancora, ragionare e' un'attivita' che si rivela decisiva! Leggete i NOMI delle 
classi - il piu' delle volte non sono esoterici (vabbe', serve un minimo di 
inglese) e dicono moltissimo.
E java e' A OGGETTI - possiamo presumere quindi che ogni classe si occupi di 
una sola ben precisa parte del sistema. ATTENZIONE: ci sono classi estremamente 
specifiche (Button e' un bottone grafico, punto) e classi piu' generiche 
(java.lang.System incapsula il sistema operativo, Runtime il supporto runtime, 
etc).Ancora nell'esempio sopra - in AWT ci sono un sacco di classi, ma dato che 
cerchiamo le dimensioni dello schermo, potremo dare un'occhiata a Window.. che 
non e' la classe  giusta, ma tra i suoi metodi ha un certo getToolkit().. 
cos'e' un TOOLKIT? Non lo sappiamo? Ottimo motivo per..
c) ..ragionare, leggere e seguire i link!
E' facile scoprire cos'e' un TOOLKIT: basta seguire i link! La descrizione 
della classe   ci fa capire che Toolkit serve per legare la GUI alle 
caratteristiche specifiche della piattaforma che stiamo usando. E che c'e' di 
piu' specifico delle dimensioni dello schermo? Val la pena quindi di dare 
un'occhiata ai metodi di Toolkit: ecco che troviamo getScreenSize() - voila'.  
Concludendo:
Una veloce scorsa alle classi e ai metodi risparmiera' tempo a voi, al ng, 
oltre a salvare un po' di banda per tutti.
Imho, il 90% delle domande da "newbie" trova una risposta in APPLET, AWT, IO, 
NET o UTIL.
Esistono anche (MOLTE altre) API opzionali per scopi specifici: ancora, tutte 
le informazioni al riguardo sono a 
java.sun.com
 (c'e' un link "DOCUMENTATION": 
il caloroso suggerimento e' di seguire quello :) ma dato che sono opzioni 
"advanced" non ne parlo qui.
Augh. Ho detto. :)
-- 
God is Real, unless declared Integer



1. FAQ------









UTIL.ZIP - classi per gestire file ZIP e JARPer prima cosa dobbiamo.. 
