Newsgroup: it.comp.java
Titolo: reshape() che non funge e altro

Ciao,
	ho iniziato da poco con le Java applets e ho un problema, probabilmente
molto stupido, che non sono riuscito a risolvere. Vorrei visualizzare,
nel modo più semplice possibile, un bottone ed una scrollbar di
dimensioni scelte da me; per capire come si fa, ho iniziato dal bottone
provando a scrivere (in parte a copiare) questa applet:
/*
 * 1.0 code.
 */
import java.applet.Applet;
import java.awt.*;
public class Pro1 extends Applet {
	Button bt1;
	Color colorRed;
	public void init() {
		bt1 = new Button("B1");
		add(bt1);
	}
	public void start() {
		Color colorRed = new Color(255,0,0);
		bt1.setLabel("BX1");
		bt1.setForeground(colorRed);
		bt1.setLabel("BX1");
		bt1.reshape(50, 50, 20, 5);
	}
	public boolean mouseUp(Event e, int x, int y) {
		bt1.reshape(x, y, 30, 40);
		return true;
	}
}	//Fine classe Pro1
Il bottone ha l'etichetta scelta da me e di colore rosso (quindi i
metodi setLabel e setForeground funzionano tranquillamente), ma il
bottone non si posiziona dove voglio io, ma in alto al centro. Da notare
che per il resto il programma funziona, cioè cliccando sul mouse in
un'altra parte dello schermo, dopo che l'applet è partita, lo stesso
bottone si sposta e si ridimensiona senza problemi. Ho provato anche a
inserire il metodo show() prima di Bt1.reshape() ma senza risultato.
C'è qualcuno che può aiutarmi, dicendomi anche se per la scrollbar le
cose funzionano nello stesso modo? E, visto che ci siamo, mi potreste
dire anche altre due cose:
1) quando e quale funzione viene chiamato all'inizio per "disegnare"
l'applet sullo schermo?
2) a volte, nel main all'interno della classe principale (p. es.
"MiaClasse extends Applet") viene istanziata la classe stessa (MiaClasse
miaclasse = new MiaClasse();). Che significato ha? La classe non viene
già istanziata quando parte l'applet?
Grazie a tutti quelli che mi dedicheranno una parte del loro tempo.
							David   
-- 
********************************
*       David Jafrancesco      *
* Istituto Nazionale di Ottica *
*       Firenze - Italy        *
*     E-mail: 
ja...@ino.it
     *
*      Tel: 
+39-055-23081
      *
*     Fax: 
+39-055-2337755
     *
********************************

 già istanziata quando parte l'applet?
Il metodo main è statico e non ha nulla a che vedere con la "partenza" dell'applet
da browser. Può servire ad esempio per testare l'applet (o una classe qualsiasi) in
locale, ma deve necessariamente, non possedendo il reference a this (come tutti i
metodi statici) istanziare un oggetto di classe MiaClasse tramite il costruttore
(di default se non ne hai implementato uno) per poterla visualizzare (in questo
caso perchè un applet) oppure per chiamarne dei metodi. Praticamente un metodo
statico è un po' come se non fosse un metodo della classe, ma non è neanche un
metodo globale (che non si può fare e sarebbe un design pessimo), ed è in fin dei
conti una accettabile via di mezzo quando serve, come nel main, del codice che ha
senso essere eseguito senza instanziare oggetti e può essere dunque chiamato
diirettamente usando il nome della classe:
MiaClasse.metodoStatico() invece di MiaClasse object = new MiaClasse() e poi
object.metodoStatico()
Il main è inoltre un caso particolare di metodo statico perchè viene eseguito
automaticamente quando "esegui" una classe. Nel caso di un'applet però il browser
non ne fa alcun uso, a lui servono altri metodi, tipo start, stop, destroy,
getAppletInfo, getParameterInfo, di cui ne erediti una versione di default quando
erediti dalla classe Applet.
Ugo
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Enterprise Java Consulting
@mail: Ugo.L...@Flashnet.it
Home URL: 
http://www.ugolandini.net
Sample URL: 
http://www.sirena.lomb.cgil.it
Work Phone: 02/26254326
Cell Phone: 0347/6310749 - 0347/4783580
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 "MiaClasse extends Applet") viene istanziata la classe stessa
Strano. Solitamente si fa nel metodo main() di una applicazione.
Sei sicuro che l'applet non possa essere utilizzata anche come app?
--
Ciao. Leonardo 
bos...@uno.it
 
http://surf.to/tetractys