Principiante con grossi problemi su un'APPLET JAVA

di il
2 risposte

Principiante con grossi problemi su un'APPLET JAVA

Qualcuno può gentilmente dirmi perchè non funziona ???
Ormai sono giorni che ci metto le mani senza sapere dove sbaglio.


// APPLET -- Form.java
// Dichiarazione degli import import java.awt.*;

import java.applet.*;
import java.awt.*;
//import java.awt.event.*;
import java.io.*;
import java.net.*;



// Dichiarazione della classe public class Form

class Form extends Applet {
// Procedura che inizializza l'Applet
String EMail;
Label label1;
Label label2;
Label label3;
Label label4;
Label label5;
Checkbox LavSi,LavNo;
TextField Nome,Cognome,Eta;
Button spedisci,azzera;

public void init()
{
// inizializza la classe
//super.init();

// Prende il parametro passatogli
EMail=getParameter("email");

// Da questo punto in poi inizializza i vari
// Controlli presenti sullo schermo. Per
// chi ha a disposizione un ambiente integrato
// come J++ o Cafè, non è necessario curarsene
// in quanto provvede a tutto il compilatore.

//{{INIT_CONTROLS
setLayout(null);
resize(346,227);
CheckboxGroup group1= new CheckboxGroup();
label1=new Label("Applet che spedisce via E-Mail una Form", Label.CENTER);
add(label1);
label1.setBounds(40,8,266,15);
label2=new java.awt.Label("Nome:");
add(label2); label2.setBounds(14,53,70,15);
label3=new Label("Cognome:");
add(label3);
label3.setBounds(14,90,70,15);
label4=new Label("Età:");
add(label4);
label4.setBounds(14,135,70,15);
LavSi=new Checkbox("Si",group1, false);
add(LavSi);
LavSi.setBounds(280,62,35,19);
LavNo=new Checkbox("No",group1, false);
add(LavNo);
LavNo.setBounds(280,83,35,22);
Nome=new TextField(27);
add(Nome);
Nome.setBounds(14,69,226,21);
Cognome=new TextField(27);
add(Cognome);
Cognome.setBounds(14,105,226,23);
Eta=new TextField(7);
add(Eta);
Eta.setBounds(14,150,63,23);
label5=new Label("Lavora?",Label.CENTER);
add(label5);
label5.setBounds(266,45,56,15);
spedisci=new Button("Spedisci");
add(spedisci);
spedisci.setBounds(14,189,88,27);
azzera=new Button("Azzera");
add(azzera);
azzera.setBounds(235,189,87,27);
LavNo.setState(false);
LavSi.setState(true);
}

// processEvent, ossia la funzione che viene
// richiamata per interpretare tutti i messaggi
// che vengono passati e chiamare le funzioni
// ad essi associate.

public boolean handleEvent(Event event) {
if (event.id== Event.ACTION_EVENT && event.target == this.spedisci){
// Se il messaggio è: "Premuto
// il pulsante Spedisci", allora
// provvedi alla spedizione
try {
clickedSpedisci();
}
catch(Exception e) {
System.out.println("Eccezione"+e);
}
return true;
}
else
if (event.id == Event.ACTION_EVENT && event.target == azzera) {
// Se il messaggio è: "Premuto il pulsante
//Azzera", allora provvedi alla cancellazione
clickedAzzera();
return true;
}

return super.handleEvent(event);
}

// Questa procedura azzera i campi dell'Applet
public void clickedAzzera() {
Cognome.setText("");
Nome.setText("");
Eta.setText("");
LavNo.setState(false);
LavSi.setState(true);
}

// Pezzo forte dell'Applet, questa procedura provvede
//alla spedizione via E-Mail dei dati.
public void clickedSpedisci() throws IOException {

// Apre un socket di comunicazione con un Host
//(consiglio di usare il vostro provider)
//alla porta 25 (quella dedicata alla posta).
Socket mailSocket = new Socket("smtp.fastwebnet.it", 25);

// Associa ad esso uno stream per poter
//usare la funzione println
PrintStream os = new PrintStream(mailSocket.getOutputStream());
int l,k,i;
String User,Host;

// Decodifica l'indirizzo E-Mail
// dividendolo in User e Host
User="";
Host="";
for (l=i=0; i<EMail.length();i++)
if(EMail.charAt(i)!='@')
if(l==0) User+=EMail.charAt(i);
else Host+=EMail.charAt(i);
else l=1;

// Comunica con il socket precedentemente
// aperto inviando i comandi SMTP

// Apre la comunicazione postale
os.println("HELO "+Host);

// Specifica che la mail proviene da .
// Per evitare errori è consigliato inserire un
// indirizzo valido.
os.println("MAIL FROM: ");

// La mail viene ricevuta da User+"@"+Host
os.println("RCPT TO: "+User+"@"+Host);

// Incominciano i dati os.println("DATA");
os.println("SUBJECT: Campi della Form");

// Scrive tutti i campi dell'Applet
os.println("Nome: "+Nome.getText());
os.println("Cognome: "+Cognome.getText());
os.println("Eta: "+Eta.getText());
if(LavSi.getState())
os.println("Lavora");
else
os.println("Non lavora");

// Fondamentale il '.' per indicare la fine
// della mail (vedi standard SMTP)
os.println(".");

// Chiude la comunicazione
os.println("QUIT");
os.close();
mailSocket.close();
}

// Per ultima cosa (ultima, ma non meno importante) non
// dimentichiamo le variabili usate.
// La maggior parte di queste (i vari controlli)
// vengono creati in automatico (e inizializzati nella init())
// se si usa un ambiente integrato.



public static void main(String args[])
{
Frame f = new Frame("Form");
Form tM = new Form();
tM.init();
tM.start();

f.add("Center", tM);
f.setSize(346, 227);
f.pack();
f.setVisible(true);
}

}

**** CODICE HTML CHE LANCIA LA APPLET ****
<HTML>

<HEAD>

<TITLE> Form in Java

</TITLE>

</HEAD>

<BODY>



<APPLET CODE="Form.class" WIDTH=346 HEIGHT=227

email="indirizzo@di_prova.it"></APPLET>

</BODY>

</HTML>

2 Risposte

  • Re: Principiante con grossi problemi su un'APPLET JAVA

    Prova così ...

    // APPLET -- Form.java
    // Dichiarazione degli import import java.awt.*;

    import java.applet.*;
    import java.awt.*;
    //import java.awt.event.*;
    import java.io.*;
    import java.net.*;


    // Dichiarazione della classe public class Form

    public class Form extends Applet {
    // Procedura che inizializza l'Applet
    String EMail;
    Label label1;
    Label label2;
    Label label3;
    Label label4;
    Label label5;
    Checkbox LavSi,LavNo;
    TextField Nome,Cognome,Eta;
    Button spedisci,azzera;

    public void init()
    {
    // inizializza la classe
    //super.init();

    // Prende il parametro passatogli
    EMail=getParameter("email");

    // Da questo punto in poi inizializza i vari
    // Controlli presenti sullo schermo. Per
    // chi ha a disposizione un ambiente integrato
    // come J++ o Cafè, non è necessario curarsene
    // in quanto provvede a tutto il compilatore.

    //{{INIT_CONTROLS
    setLayout(null);
    resize(346,227);
    CheckboxGroup group1= new CheckboxGroup();
    label1=new Label("Applet che spedisce via E-Mail una Form", Label.CENTER);
    add(label1);
    label1.setBounds(40,8,266,15);
    label2=new java.awt.Label("Nome:");
    add(label2); label2.setBounds(14,53,70,15);
    label3=new Label("Cognome:");
    add(label3);
    label3.setBounds(14,90,70,15);
    label4=new Label("Età:");
    add(label4);
    label4.setBounds(14,135,70,15);
    LavSi=new Checkbox("Si",group1, false);
    add(LavSi);
    LavSi.setBounds(280,62,35,19);
    LavNo=new Checkbox("No",group1, false);
    add(LavNo);
    LavNo.setBounds(280,83,35,22);
    Nome=new TextField(27);
    add(Nome);
    Nome.setBounds(14,69,226,21);
    Cognome=new TextField(27);
    add(Cognome);
    Cognome.setBounds(14,105,226,23);
    Eta=new TextField(7);
    add(Eta);
    Eta.setBounds(14,150,63,23);
    label5=new Label("Lavora?",Label.CENTER);
    add(label5);
    label5.setBounds(266,45,56,15);
    spedisci=new Button("Spedisci");
    add(spedisci);
    spedisci.setBounds(14,189,88,27);
    azzera=new Button("Azzera");
    add(azzera);
    azzera.setBounds(235,189,87,27);
    LavNo.setState(false);
    LavSi.setState(true);
    }

    // processEvent, ossia la funzione che viene
    // richiamata per interpretare tutti i messaggi
    // che vengono passati e chiamare le funzioni
    // ad essi associate.

    public boolean handleEvent(Event event) {
    if (event.id== Event.ACTION_EVENT && event.target == this.spedisci){
    // Se il messaggio è: "Premuto
    // il pulsante Spedisci", allora
    // provvedi alla spedizione
    try {
    clickedSpedisci();
    }
    catch(Exception e) {
    System.out.println("Eccezione"+e);
    }
    return true;
    }
    else
    if (event.id == Event.ACTION_EVENT && event.target == azzera) {
    // Se il messaggio è: "Premuto il pulsante
    //Azzera", allora provvedi alla cancellazione
    clickedAzzera();
    return true;
    }

    return super.handleEvent(event);
    }

    // Questa procedura azzera i campi dell'Applet
    public void clickedAzzera() {
    Cognome.setText("");
    Nome.setText("");
    Eta.setText("");
    LavNo.setState(false);
    LavSi.setState(true);
    }

    // Pezzo forte dell'Applet, questa procedura provvede
    //alla spedizione via E-Mail dei dati.
    public void clickedSpedisci() throws IOException {

    // Apre un socket di comunicazione con un Host
    //(consiglio di usare il vostro provider)
    //alla porta 25 (quella dedicata alla posta).
    Socket mailSocket = new Socket("smtp.fastwebnet.it", 25);

    // Associa ad esso uno stream per poter
    //usare la funzione println
    PrintStream os = new PrintStream(mailSocket.getOutputStream());
    int l,k,i;
    String User,Host;

    // Decodifica l'indirizzo E-Mail
    // dividendolo in User e Host
    User="";
    Host="";
    for (l=i=0; i<EMail.length();i++)
    if(EMail.charAt(i)!='@')
    if(l==0) User+=EMail.charAt(i);
    else Host+=EMail.charAt(i);
    else l=1;

    // Comunica con il socket precedentemente
    // aperto inviando i comandi SMTP

    // Apre la comunicazione postale
    os.println("HELO "+Host);

    // Specifica che la mail proviene da .
    // Per evitare errori è consigliato inserire un
    // indirizzo valido.
    os.println("MAIL FROM: ");

    // La mail viene ricevuta da User+"@"+Host
    os.println("RCPT TO: "+User+"@"+Host);

    // Incominciano i dati os.println("DATA");
    os.println("SUBJECT: Campi della Form");

    // Scrive tutti i campi dell'Applet
    os.println("Nome: "+Nome.getText());
    os.println("Cognome: "+Cognome.getText());
    os.println("Eta: "+Eta.getText());
    if(LavSi.getState())
    os.println("Lavora");
    else
    os.println("Non lavora");

    // Fondamentale il '.' per indicare la fine
    // della mail (vedi standard SMTP)
    os.println(".");

    // Chiude la comunicazione
    os.println("QUIT");
    os.close();
    mailSocket.close();
    }

    // Per ultima cosa (ultima, ma non meno importante) non
    // dimentichiamo le variabili usate.
    // La maggior parte di queste (i vari controlli)
    // vengono creati in automatico (e inizializzati nella init())
    // se si usa un ambiente integrato.


    public static void main(String args[])
    {
    Frame f = new Frame("Form");
    Form tM = new Form();
    tM.start();

    f.add("Center", tM);
    f.setSize(346, 227);
    f.pack();
    f.setVisible(true);
    }

    }
  • Re: Principiante con grossi problemi su un'APPLET JAVA

    Per cortesia qualcuno mi aiuti!!!!!

    Ormai ci sbatto da giorni.......copio lo script segnalato precedentemente, lo compilo, creo la pagina web e tutto ok.............ma se premo il tasto azzera effettivemente il form si svuota, invece se premo SPEDISCI non succede nulla (ho impostato bnel codice HTML il mio indirizzo email e nello script dell'applet il server SMTP di gmail)

    Grazie in anticipo
Devi accedere o registrarti per scrivere nel forum
2 risposte