Newsgroup: it.comp.java
Titolo: Mi aiutate por favor?

Dunque...
ho schifosamente ricopiato un applet dal libro su cui sto cercando di
imparare sto benedetto Java.
L'applet consiste in un orologio.
Compilato il programmino mi compare un messaggio relativo alle API.
Per evitare perdite di tempo vi metto sia il programma che i messaggi del
compilatore...
---------------------------
import java.awt.Graphics;
import java.awt.Font;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Orologio extends java.applet.Applet implements Runnable {
  Font f = new Font("Arial",Font.PLAIN, 10);
  GregorianCalendar data;
  Thread runn;
  public void start(){
    if (runn == null){
      runn = new Thread(this);
      runn.start();
    }
  }
  public void stop(){
    if (runn == null){
      runn.stop();
      runn = null;
    }
  }
  public void run(){
    while(true){
      repaint();
      try {Thread.sleep(1000);}
      catch (InterruptedException e) {}
    }
  }
  public void paint(Graphics g){
    data = new GregorianCalendar();
    g.setFont(f);
    g.drawString("" + data.getTime(), 10, 50);
  }
}
Questa seguente è l'ultima parte della compilazione.
N.B. Ovviamente ho provato comunque a lanciare l'applet ma io non vedo un
cacchio....
Grazie a tutti!
_______________________________________
[loaded
D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/lang/InterruptedException.class)
in 0 ms]
[loaded D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/lang/Exception.class) in 0
ms]
[loaded D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/lang/Error.class) in 0 ms]
[loaded
D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/lang/RuntimeException.class) in 0
ms]
[loaded
D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/text/AttributedCharacterIterator.c
lass) in 0 ms]
[loaded
D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/text/AttributedCharacterIterator$A
ttribute.class) in 60 ms]
[loaded
D:\PROGRAMMI\JDK1.2.2\JRE\lib\rt.jar(java/text/CharacterIterator.class) in 0
ms]
[wrote Orologio.class]
Orologio.java:20: Note: The method void stop() in class java.lang.Thread has
been deprecated.
      runn.stop();
               ^
Note: Orologio.java uses or overrides a deprecated API.  Please consult the
documentation for a better alternative.
1 warning
[done in 2850 ms]

Ti invio un codice funzionante analogo.
Rifletti sulle eventuali modifiche.
C'é qualche differenza (Date invece che GregorianCalendar).
Non dovrebbe dare l'avvertimento di API deprecata perché non presenta
l'istruzione runn.stop();
import java.awt.Graphics;
import java.awt.Font;
import java.util.Date;
public class DigitalClock extends java.applet.Applet
    implements Runnable {
    Font theFont = new Font("TimesRoman",Font.BOLD,24);
    Date theDate;
    Thread runner;
    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }
    public void stop() {
        if (runner != null) {
            runner = null;
        }
    }
    public void run() {
        Thread thisThread = Thread.currentThread();
        while (runner == thisThread) {
            repaint();
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) { }
        }
    }
    public void paint(Graphics screen) {
        theDate = new Date();
        screen.setFont(theFont);
        screen.drawString("" + theDate.toString(), 10, 50);
    }
}
Ciao Davide

...Ovviamente qualche differenza c'è ma purtroppo io non sono ancora in
grado di capire il perchè dell'utilizzo di comandi invece di altri. Non so
se è colpa mia o del libro su cui sto studiando ma per ora quello che leggo
do per scontato che funzioni. Data la mia esperienza su ambiente diverso so
che, spesso, i messaggi del compilatore non ti fanno vedere esattamente il
punto in cui c'è qualcosa che non va. Figurati se con così poca esperienza
(praticamente nulla) su Java io posso capire dove e cosa ho sbagliato.
Mettici anche il fatto che certe cose, certi comandi e concetti non me li
ricordo....che faccio lascio perdere? :))))
Ti posso chiedere qualche spiegazione sulle differenze del tuo applet con il
mio?
Ti ringrazio per la pazienza...:)))
Baci.

Se ti consola io anche io sono all'inizio.
Ho imparato con teach yourself java in 21 days.
I messaggi del compilatore possono essere errori o avvertimenti.
Tu hai ricevuto un avvertimento, cioé il tuo applet utilizzava un metodo
sconsigliato, deprecato, sostituito da alternative piú recenti in altre release
di Java piú nuove.
Le diffrenze sono minime tra un listato e l'altro.
Entrambi utilizzano i thread.
Le differenze piú rilevanti sono l'utilizzo di Date invece che GregorianCalendar
(quest'ultima "migliore"), che sono entrambi classi per la gestone di date.
L'altra differenza é un "trucchetto" [penso] (l'uso di runn.start(), invece che
runn.stop(), che non da avvertimenti [penso] in fase di compilazione). L'ultima
differenza é la diversa formattazione nel testo definita negli argomenti passati
al costruttore new quando viene creato il nuovo oggetto Font.
Se sai l'inglese naviga un po' su 
www.Javasoft.com
, lì troverai documenti (docs)
e lezioni di Java (tutorials, in particolare The Java Tutorial:
http://www.javasoft.com/docs/books/tutorial/
)
Il mio applet ti funziona, alla fine?
Davide
(Spero di essere stato chiaro e corretto, anch'io non sono un guru di Java!)

funge funge...sono riuscito a far funzionare anche il mio...l'errore non era
nel listato ma nelle dimensioni dell'applet sul browser...ehehehehe un
errore proprio da pivello...:))))
Grazie per i consigli e per il tuo listato...:)))) alla prossima...
Baci...


