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 di dare un'occhiata ai metodi: ecco 
che troviamo
getScreenSize() - il nome ci dice che e' quello 
giusto. Voila'.
Concludendo:
Una veloce scorsa alle classi e ai metodi 
risparmiera' tempo a voi, al ng, oltre a salvare 
un po' di banda.
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.
E' tutto. :)
--
God is Real, unless declared Integer
 
 

