Oppure

Loading
06/06/06 16:17
toretto
ciao sono nuovo ed è da poco ke sto studiando java all università.
vorrei fare un programma ke funzioni in background in grado di scegliere un immagine da una cartella ed impostarla come sfondo del desktop magari impostandolo centrato o esteso a seconda della grandezza in pixel dell' immagine.
Non conosco molto java e per eseguire i programmi uso ancora il prompt dei comandi quindi vi chiedo dei suggerimenti facili in modo che li possa capire pure io.
grazie
Ultima modifica effettuata da toretto 06/06/06 16:18
aaa
07/06/06 13:42
netarrow
Java non può direttamente interagire così tanto col sistema operativo essendo interpretato dalla JVM. Nella core standard non esiste qualcosa che imposta lo sfondo del desktop, dovresti trovare una classe fatta da terzi e nella peggiore delle ipotesi fare tu i metodi nativi con un linguaggio appunto nativo e che possa interagire col sistema e poter essere richiamato da Java (solitamente si usa C/C++).
aaa
08/06/06 12:52
toretto
qundi dovrei fare un programma in c++ e richiamarlo in una classe?:d

ma nn si perde la portatilita di java in questo modo?
aaa
08/06/06 16:31
netarrow
si, si perde la portabilità diciamo "integrata"(termini coniati sul momento per questo contesto mi sa). Cmq non è che crei un programma, ma una libreria(le dll in windows proprio) che richiami in Java. Tutta la JVM si fonda su questo meccanismo: astrarre un'operazione che con l'interfaccia di programmazione in Java resta uguale(sia linux, windows, mac, *bsd, solaris... bhò netware o ndis2 :-) ) però il codice nativo che viene richiamato cambia.
Se esistesse nella core standard il metodo(per esempio)

toolkit.getDefaultToolkit().setWallpaper(Image img)

la JVM se è quella di windows saprà che dovrà eseguire il codice nativo presente in... mettiamo win.dll, se la JVM è quella di linux e sta usando kde in sysKde.o (nomi così eh)

Infatti quando in Java richiami la libreria non metti l'estensione, ma la JVM guarda su che sistema gira e trova sola la libreria prensente nelle cartelle del jre(aggiungendo l'ext usata dal sistema).

Un esempio su come creare un metodo nativo lo trovi negli appunti Java "gestire nativamente mouse in windows" e anche il programma già compilato nell'omonima sezione sotto sorgenti.(usa la ricerca casomai)

Ad ogni modo, il tipo di progetto(programma in background che interagisce in qualcosa col sistema operativo) non è fra i purpose di Java, si può fare, ma... diciamo che i vantaggi ottenuti non superano il lavoro fatto(IMHO).

ciao
Ultima modifica effettuata da netarrow 08/06/06 16:34
aaa