PDA

Visualizza la versione completa : java e settext


vecchioste
11-02-2004, 16:05
sono hai primi passi con java
ho un problema con un settext

ho creato un label
ed ho una funzione in qui ho deve scrivere nel label questo e fino a qui funziona il problema è che se ci devo scrivere una seconda volta ed il risultato è più lungo di quello di prima per visualizzare l'intero contenuto devo aprire a tutto schermo la finestra e poi posso ridimensionare e si vede tutto

perchè?


cliccato.setText("IP di "+dom+" : "+loc.getHostAddress());

LeleFT
11-02-2004, 19:01
E' un problema di refresh... prova a richiamare il metodo doLayout() oppure setVisible(true) della finestra dopo ogni chiamata a setText().

Esempio:


// Se questo è un metodo del tuo Frame
public void mioMetodo() {
cliccato.setText(<nuovo testo>);
doLayout(); // Non dovrebbe essere necessario, ma male non fa :D
setVisible(true);
}


Ciao. :ciauz:

tommisceddu
12-02-2004, 01:10
scusate se mi intrometto ma a cosa serve il doLayout (); ?

vecchioste
12-02-2004, 09:33
grazie mille ora funziona benissimo

LeleFT
12-02-2004, 12:29
doLayout() chiede al componente di "ridisegnarsi" (non nel senso grafico della cosa, ma nel senso di ricostruirsi). Come da documentazione Java, questo metodo viene usato specialmente dai Container, cioè tutte quelle classi che possono contenere al loro interno altri Component e serve, appunto, a far sì che il Contenitore venga rivalidato.

Si usa, in pratica, quando viene modificato il contenuto di un Container (ad esempio, quando vengono aggiunti o tolti dei componenti) in modo da rivalidarlo.


Spero di essere stato abastanza chiaro, anche perchè più di così non mi riesce di spiegare la cosa :p


Ciao. :ciauz:

vecchioste
12-02-2004, 12:56
ok sei stato chiaroma adesso no si compila più mi da questo errore

at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :537)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:251)
at java.net.URLClassLoader.access$100(URLClassLoader. java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 89)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 35)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:302)

LeleFT
12-02-2004, 13:03
Ehm... un po' di codice per capire cos'è che provoca l'errore sarebbe utile... :D
Da quello che posso capire è un errore nel caricamento di una classe...

Ciao.

vecchioste
12-02-2004, 15:03
Frame ButAppFram = new Frame("Risolvi IP"); // Creo un frame grafico
// inizialmente invisibile,
// e lo chiamo But1

IndirizziIP MiaBut1AppIst = new IndirizziIP(); // Istanzio l'applet

MiaBut1AppIst.init(); // Se esiste init() eseguilo...
// MiaBut1AppIst.start(); // Se esiste start() eseguilo...


ButAppFram.add("Center", MiaBut1AppIst); // Attacca l'applet al centro
// del frame.

ButAppFram.resize(500, 300); // Ridimensiono (non ho WIDTH di html!)
ButAppFram.show(); // Visualizza il frame, ora che e' OK.
}

LeleFT
12-02-2004, 15:44
A parte che non capisco perchè tu vuoi mettere un'applet dentro ad un frame (l'applet è un'applicazione embedded da usare nelle pagine HTML il cui metodo init() viene automaticamente avviato dal browser stesso), vedo che fai uso di un metodo ( resize() ) che è deprecato dalla versione 1.1 di JDK ( sostituito da setSize() ) e, comunque, non riesco a capire com'è strutturato il tuo codice... Non capisco in quali metodi è inserito tutto quel codice, né di quali classi faccia parte... Se tu potessi postare un po' più di codice sarebbe, forse, più chiaro, perchè così proprio non si capisce...



Ciao :ciauz:

Loading