Newsgroup: it.comp.java
Titolo: Le "stupid questions"

Ehhhmmmm... col capo cosparso di cenere ecco le mie
domande da pre-principiante. Perdonatemi ma java non
sembra affatto come il C++ a livello di concezione
prima ancora che di sintassi, e non so come riciclare
quel che so.
A) Terminologia. A quanto mi sembra non esiste più il
concetto di sorgente -> intermedio -> eseguibile (lo
sapevo perché un'idea di larga massima di come sia
architettato Java ce l'ho), ma diversi IDE hanno una
gran quantità di tipi di progetti. Esiste una specie
di riassunto di come sono organizzate le possibilità
del linguaggio (tipo applets, applicazioni, etc.) in
modo da iniziare a orientarmi sui termini e quel che
significano?
B) Ambiente di lavoro. Ho scaricato quelli di Borland,
SUN, Eclipse, excelsior e non so quanti altri. Il
fatto è che io non riesco a usare gli IDE. Sono
abituato alla magica bcc32 <nomefile> e al linker.
Ravanando tra sun e Borland vedo che esiste javac e
infatti riesco a bypassare l'IDE, compilare ed
eseguire con java.exe un programmino di prova. Quel
che non trovo è l'equivalente della possibilità di
linkare più file obj. Intuisco che deve esserci un
meccanismo diverso per splittare un progetto in più
files, ma non so dove iniziare a cercare. Senza linea
di comando e senza il mio vecchio editor sono
totalmente bloccato :( ma non posso certo fare un solo
file di un grosso programma!!!
C) Librerie. Non mi ricordo dove ho visto - se ricordo
bene - o se non ricordo, se esistono librerie di
classi free con le interfacce grafiche. Potrei star
parlando della tecnologia swing se ho più o meno
capito. Ricordo che in un sito vidi un sacco di
interfacce disponibili con diversi pulsanti e looks,
ma non riesco a ritrovare in che sito ero capitato.
C'è un "entry point" di risorse e librerie da cui
partire per ravanare?
Il mio principale obiettivo nell'avvicinarmi a java è
scrivere interfacce grafiche senza impazzire più di
tanto, senza stranezze ma con un codice _portabile_;
della velocità mi importa poco perché i "motori" dei
programmi li faccio con il C++ compilato. Con visual
basic e visual C++ non mi è mai riuscito, almeno con
java una finestra sul desktop sono riuscito ad aprirla
con 6 linee di codice!
Grazie e scusate le domande stupide :(((
Apx

Ciao, the!
Il giorno 23/03/2004 alle ore 13:09 hai scritto:
 tA> Esiste una specie di riassunto di come sono organizzate le possibilità
 tA> del linguaggio (tipo applets, applicazioni, etc.) in
 tA> modo da iniziare a orientarmi sui termini e quel che
 tA> significano?
La distinzione non viene fatta a livello di compilatore ma da quello che fa
la classe o dall'ambiene in cui viene esguita. Non esiste il concetto di
applicazione, per esempio, semplicemente "l'entry point" di un programma e'
il metodo static main che viene dichiarato in una classe. Puoi anche avere
100 classi ognuna con il suo metodo main e lanciare quello che ti serve di
volta in volta senza ricompilare. Idem per gli applet, sono classi che
estendono la classe Applet.
 tA> fatto è che io non riesco a usare gli IDE. Sono
Molto male, l'IDE ti permette di concentrarti su quello che devi fare e non
sul come farlo.
 tA> Ravanando tra sun e Borland vedo che esiste javac e
 tA> infatti riesco a bypassare l'IDE, compilare ed
 tA> eseguire con java.exe un programmino di prova. Quel
Se scarichi il JDK hai le stesse cose, non serve l'IDE Borland per quello.
 tA> che non trovo è l'equivalente della possibilità di
 tA> linkare più file obj. Intuisco che deve esserci un
Non c'e' infatti. Non esiste il concetto di link, ogni classe e' un file e
vengono caricate al momento opportuno durante l'esecuzione del programma.
C'e' una struttura di directory da rispettare, ma niente di piu'. Puoi
impacchettare tutto in un file JAR ma si tratta semplicemente dei file
compressi in un archivio zip, niente di piu'.
 tA> capito. Ricordo che in un sito vidi un sacco di
 tA> interfacce disponibili con diversi pulsanti e looks,
 tA> ma non riesco a ritrovare in che sito ero capitato.
 tA> C'è un "entry point" di risorse e librerie da cui
 tA> partire per ravanare?
Sul sito della Sun, probabilmente e' il tutorial Swing che ti fa vedere
l'aspetto dei vari controlli a seconda del look-and-feel selezionato. Non
ricordo il link ma si trova facilmente (Swing tutorial).
 tA> della velocità mi importa poco perché i "motori" dei
 tA> programmi li faccio con il C++ compilato.
Ecco questo e' proprio il modo sbagliato di utilizzare Java. O meglio, usare
Java non ti porta nessun vantaggio e ti toglie la bellezza della
portabilita'. Se devi scrivere un programma in Java che usa metodi nativi
che magari funzionano solo sotto Windows, tanto vale usare Visual Basic, e'
molto piu' semplice.
 tA> Con visual basic e visual C++ non mi è mai riuscito, almeno con
Scusa ma non ci credo proprio che non sei mai riuscito a realizzare
un'interfaccia grafica con Visual Basic, caspita basta posizionare gli
elementi, non ci vuole molto.
Bye
-- 
Marco Maccaferri
MaccaSoft - 
http://www.maccasoft.com

 con 6 linee di codice!
In tal caso, Java potrebbe non essere la scelta migliore. Tuttavia, 
questo e' un argomento che affronti quando hai gia' un minimo di 
confidenza con la piattaforma. Passa prima per "Hello world" che e' li' 
apposta. Una settimana dopo, torni sulla questione interfacce grafiche (e 
magari chiedine qui) e vedrai che e' tutto molto piu' chiaro.
Per darti un minimo di idea, Java arriva con AWT - che e' il toolkit 
nativo (brutto) e Swing, che e' un toolkit piu' bello ma piu' lento e con 
un design pesante. Per ovviare a questi problemi - esattamente come in 
C++ - altri toolkit sono stati creati. Quello piu' noto e' SWT, con cui 
la IDE eclipse e' fatta e che uno puo' usare pure per i suoi programmi.
-- 
You dont know what to do when you dont know what you're doing.
http://space.tin.it/computer/csadun

 con 6 linee di codice!
Si, ma poi devi cque scriverti i listener degli eventi
e non e' molto diverso da Visual C++

 la IDE eclipse e' fatta e che uno puo' usare pure per i suoi programmi.
Tutto vero, una sola nota:
con Swing e AWT l'applicazione che crei e' direttamente utilizzabile
su Windows/Linux/Mac etc.. xche' fa riferimento a librerie di java,
per SWT invece ci sono delle implementazioni native (su Windows
usa una DLL, su linux usera' qcos'altro, non so come si chiama), quindi
devi creare un compilato per ogni sistema su cui vorrai usare il
programma: se guardi sui siti di programmi realizzati in SWT ci sono
il download per win, il download x linux etc... mentre in genere
per app basate su Swing o AWT non e' necessario.
Di contro le SWT hanno l'aspetto nativo del sistema operativo su cui
girano (e quindi non sembrano neanche fatte in java) e sono piu' veloci,
mentre le Swing sono abbastanza lente e in AWT solo i widget base
(bottone, edit box etc..) ma non ci sono oggetti grafici + avanzati,
oltre ad avere un aspetto comune su tutti gli os

Ciao, NC!
Il giorno 23/03/2004 alle ore 16:07 hai scritto:
 N> Di contro le SWT hanno l'aspetto nativo del sistema operativo su cui
 N> girano (e quindi non sembrano neanche fatte in java) e sono piu' veloci,
 N> mentre le Swing sono abbastanza lente e in AWT solo i widget base
 N> (bottone, edit box etc..) ma non ci sono oggetti grafici + avanzati,
 N> oltre ad avere un aspetto comune su tutti gli os
Non e' del tutto vero, se metti questa riga:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Viene impostato il look and feel nativo per il sistema operativo su cui gira
(quindi su Windows avra' l'aspetto di Windows). Se non c'e' un look and feel
adatto viene selezionato quello di default.


 adatto viene selezionato quello di default.
Grazie per la precisazione, pero' mi pare che, anche se l'aspetto 
"assomiglia" a quello di Windows, si capisce cque che e' una 
applicazione java (vedi come gestisce le treelist piuttosto che
il file_apri)

Ciao, NC!
Il giorno 23/03/2004 alle ore 17:56 hai scritto:
 N> Grazie per la precisazione, pero' mi pare che, anche se l'aspetto
 N> "assomiglia" a quello di Windows, si capisce cque che e' una
 N> applicazione java (vedi come gestisce le treelist piuttosto che
 N> il file_apri)
Si alcune cose sono leggermente diverse (su XP noti subito che non usa
l'interfaccia a temi caratteristica, nella 1.5 dovrebbero aggiungere un
Windows XP Look-and-feel per questo), ma del resto si vedono fin troppi
programmi che rimaneggiano le dialog standard di Windows che molto spesso le
differenze passano del tutto inosservate.


Un sentitissimo grazie per tutto il vostro aiuto!!!
Sono state tutte indicazioni utili e... mi metto
all'opera.
Apx.