PDA

View Full Version : [JAVA] domanda sulle applet...


Tommo
16-02-2006, 20:46
Probabilmente è una domanda parecchio noob :D , però nn riesco a capire come si fa a far si che un programma venga eseguito come applet invece che come applicazione da netBeans. Ho provato a rendere la classe che contiene main() una sottoclasse di JApplet ma nn cambia nulla...

^TiGeRShArK^
16-02-2006, 22:05
le applet non hanno main..
vanno eseguite all'interno di una sandbox di un browser web....
se vuoi un mio consiglio lascia perdere le applet e smanetta un pò con java web start ;)

(a meno ke non hai la necessità assoluta di integrare i tuoi programmi in una pagina html.... ma da quello ke hai scritto direi di no :D)

alexanderf
17-02-2006, 11:00
Salve ragazzi cio sto programmino che mi visualizza i numeri primipero no riesco a far visualizzare i suoi divisori esempio cio 3 e divisible solo con 3 oppure cio 4 e divisibile con 2 e 4
public class NumeriPrimi{
static int primo;
static int i;
public static String numeroPrimo(int primo){
if(primo==2){
return"è un numero primo";
}else if (primo==3){
return "è un numero primo";
}else if (primo==5){
return "è un numero primo";
}

if ((primo%2)==0) {

return"non è numero primo";
}else if ((primo%3)==0){
return"non è un numero primo";
}else if ((primo%5)==0){
return"non è un numero primo";
}
return"é un numero primo";

}

public static void main(String args[])
{
//NumeriPrimi primo = new NumeriPrimi();
String risposta=NumeriPrimi.numeroPrimo(3) System.out.println(risposta);
}
} :confused: :confused:

Tommo
17-02-2006, 14:34
A parte che nn ho capito che c'entra la risposta di alexanderf, io volevo usare le applet perchè:

1) ho letto che solo queste possono usare i suoni
2) possono comunicare + facilmente con l'host
3) visto che volevo fare un browser game ho bisogno di integrarli su una pagina web.
4) magari è un pregiudizio ma nn ho mai incontrato una applicazione in java web start su internet... perchè?

E poi volevo sapere come usarle con l'IDE perchè il tutorial java molte volte spiega come usare le classi solo nelle applets... per esempio nn dice come usare i suoni o le immagini da applicazione.

Spero che nn si debbano caricare su un host ogni volta per provarle perchè ci vorrebbe parecchio tempo...

Tommo
18-02-2006, 15:46
nn lo sa nessuno?

^TiGeRShArK^
18-02-2006, 21:26
1) ho letto che solo queste possono usare i suoni

falso.

2) possono comunicare + facilmente con l'host

qua dipende che intenti ke non ho capito....

3) visto che volevo fare un browser game ho bisogno di integrarli su una pagina web.

x questo, come ho già detto devi x forza usare le applet

4) magari è un pregiudizio ma nn ho mai incontrato una applicazione in java web start su internet... perchè?

...boh... forse xkè si preferisce integrarli in una pagina web??
cmq applicazioni un minimo complesse vanno fatte X FORZA utilizzando web start al posto delle applet....
basta vedere quella utilizzata dalla NASA x visualizzare in 3d le immagini di un pianeta se non erro...

E poi volevo sapere come usarle con l'IDE perchè il tutorial java molte volte spiega come usare le classi solo nelle applets... per esempio nn dice come usare i suoni o le immagini da applicazione.

una cosa è usare le applet, altra cosa ben diversa è usare suoni e immagini in java.

Spero che nn si debbano caricare su un host ogni volta per provarle perchè ci vorrebbe parecchio tempo...
no, puoi farle partire anke in locale..
devi però inserire il codice necessario a fare partire le applet in una pagina web...
ora non ce l'ho a portata di mano...prova a farti un giro con google ke se ne trovano a bizzeffe esempi di questo tipo x integrare le applet in una pagina web...

Tommo
18-02-2006, 22:26
Beh quella roba dei suoni l'ho letta sul tutorial ufficiale del java, magari nn era aggiornato... con l'applet ci dovrei fare solo un'interfaccia grafica che elabora i dati ricevuti dall'host, che è quello che esegue i calcoli (continui), penso niente di + complesso del biliardo di yahoo, anche quello un' applet, e poi l'host dovrebbe usare un' applicazione per elaborare i dati del mondo.

Col nn poter usare i suoni o le immagini nelle applicazioni volevo dire che il tutorial java da come esempio codice che usa metodi di un oggetto applet, tipo applet.getImage, che nn so come sostituire :muro: ...

Per ora cercherò come far partire in locale le applet...

^TiGeRShArK^
19-02-2006, 00:27
le applet girano in locale...
non eseguono calcoli eseguiti dall'host...
puoi sempre attivare un server java sull'host e lasciarlo in ascolto x fare delle eventuali elaborazioni... ma quest'ultimo sarà una normalissima applicazione java, non un applet.

mjordan
19-02-2006, 01:55
Salve ragazzi cio sto programmino che mi visualizza i numeri primipero no riesco a far visualizzare i suoi divisori esempio cio 3 e divisible solo con 3 oppure cio 4 e divisibile con 2 e 4
public class NumeriPrimi{
static int primo;
static int i;
public static String numeroPrimo(int primo){
if(primo==2){
return"è un numero primo";
}else if (primo==3){
return "è un numero primo";
}else if (primo==5){
return "è un numero primo";
}

if ((primo%2)==0) {

return"non è numero primo";
}else if ((primo%3)==0){
return"non è un numero primo";
}else if ((primo%5)==0){
return"non è un numero primo";
}
return"é un numero primo";

}

public static void main(String args[])
{
//NumeriPrimi primo = new NumeriPrimi();
String risposta=NumeriPrimi.numeroPrimo(3) System.out.println(risposta);
}
} :confused: :confused:

Tu comunque mi sa che lo fai apposta, ti è stato detto già cento volte di aprire un nuovo thread per questa questione e di usare il tag code :mad: Non puoi continuare a postare questa cosa in ogni thread che viene aperto :muro: Almeno un po di rispetto per chi ha una questione da risolvere in un suo thread. :muro:

mjordan
19-02-2006, 02:16
Ciao Tommo, ti do una semplice Applet a titolo di esempio. Puoi considerarla un hello world della programmazione Applet. Innanzitutto devi importare il package java.applet e il package java.awt, che sono il minimo indispensabile per creare un'applet banale.
Il codice è il seguente:


import java.awt.*;
import java.applet.*;

public class StupidaApplet extends Applet {
public void paint(Graphics g)
{
g.drawString("Un'applet idiota", 20, 20);
}
}


Non l'ho provata, l'ho scritta di getto ma penso che dovrebbe funzionare (a occhio).
Come vedi devi creare una classe che estende una classe Applet (quella che ti fornisce i servizi per crearne una. Non dispone di un metodo main(), perchè il flusso di esecuzione delle applet inizia da paint(), un metodo della classe Applet che abbiamo ridefinito. Esso vine chiamato ogni volta che l'applet deve ridisegnare il contenuto (e viene chiamato anche alla prima esecuzione, quindi puoi considerarlo, molto semplicisticamente, l'equivalente di un main() di un'applet).
Il metodo paint() prende in ingresso un oggetto di tipo Graphics, che descrive il contesto grafico in cui si collocherà l'applet.

Per eseguire quest'applet in un browser web, devi creare una pagina HTML con il seguente codice:


<applet code="StupidaApplet" width=200 height=60>
</applet>


Niente di nuovo, quindi sul versante HTML, se non per il nuovo tag <applet> da usare dove si specifica la classe principale dell'applet da eseguire.

Addirittura non serve neanche che crei un file HTML separatamente, puoi integrare il codice HTML direttamente nell'applet, in questo modo:


import java.awt.*;
import java.applet.*;
/*
<applet code="StupidaApplet" width=200 height=60>
</applet>
*/
public class StupidaApplet extends Applet {
public void paint(Graphics g)
{
g.drawString("Un'applet idiota", 20, 20);
}
}


cioè semplicemente mettendo un commento all'inizio del codice Java (dopo le dichiarazioni import) e inserendovi il codice HTML per la gestione. A questo punto sarà sufficiente compilare l'applet e eseguirla.

Quando parli di applet, quindi, devi ricordare:
1) Le applet non presentano un metodo main(), ma richiamano il metodo paint() ridefinito dal nostro codice della classe Applet. Esso viene richiamato non soltanto alla prima esecuzione ma ogni volta che subentra un evento che implica il ridisegno dell'applet.
2) L'I/O da parte delle applet non può essere realizzato mediante le classi standard del flusso Java, bensì tramite le interfacce fornite da AWT e da Swing

Spero di essere stato chiaro (almeno come passo introduttivo).

^TiGeRShArK^
19-02-2006, 18:52
ehm...
non vorrei sbagliare..
ma non è deprecato il tag applet???
se non sbaglio era consigliato usare un altro tag ke io avevo iniziato ad usare abitualmente..
ora non mi ricordo... forse object.. boh..
vedo + tardi se trovo una delle applet ke ho fatto nel marasma del mio hdd....:cry:

mjordan
19-02-2006, 22:06
ehm...
non vorrei sbagliare..
ma non è deprecato il tag applet???
se non sbaglio era consigliato usare un altro tag ke io avevo iniziato ad usare abitualmente..
ora non mi ricordo... forse object.. boh..
vedo + tardi se trovo una delle applet ke ho fatto nel marasma del mio hdd....:cry:

No il tag <applet> non è deprecato. Viene utilizzato quando bisogna fare il deploying dell'applet da Internet. I tag <object> e <embed> invece si usano per fare il deploying da una rete Intranet.

<applet> inoltre consente di effettuare un deploy "multibrowser". Comunque per quanto riguarda il deploy delle applet Java conviene leggere il seguente link:
http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/using_tags.html

P.S.: Ma sbaglio o oggi si sono persi nel nulla parecchi commenti sul forum? :mbe:

Tommo
20-02-2006, 22:34
Ehi ho provato a copiare e incollare l'esempio di mjordan, e pure a fare un html in blocco note da far partire nella cartella dove si trova la classe principale...
netBeans continua a chiedermi la classe main e non compila, da html invece il massimo che ho ottenuto è stato "applet has crashed". Beh, almeno l'ha trovata :muro: ...

mjordan
21-02-2006, 12:48
netBeans continua a chiedermi la classe main e non compila


Facile a credersi, se come progetto hai specificato di creare una "Java Application"... Per le Applet devi specificare "Java Class Library"
Qui trovi come realizzare le Applet con Netbeans:
http://www.netbeans.org/kb/articles/tutorial-applets-40.html


da html invece il massimo che ho ottenuto è stato "applet has crashed". Beh, almeno l'ha trovata :muro: ...

Con quale browser? Hai provato con l'applicazione appletviewer?

mjordan
21-02-2006, 13:04
Ho provato a eseguirla e, come vedi, funziona perfettamente ;)
http://utenti.lycos.it/darkcg/images/forum/win.jpg

Tommo
21-02-2006, 17:17
E incredibile... ci sono riuscito :eek: ! Grazie per l'aiuto, il link su come creare le applet da netbeans è stato molto utile, perchè il problema principale era proprio che nn sapevo come usare netbeans...

mjordan
21-02-2006, 17:24
E incredibile... ci sono riuscito :eek: ! Grazie per l'aiuto, il link su come creare le applet da netbeans è stato molto utile, perchè il problema principale era proprio che nn sapevo come usare netbeans...

Di nulla. Buon lavoro.