PDA

Visualizza la versione completa : controllo JTextField


hannibal/p
27-11-2003, 20:34
come faccio a verificare ( dopo la pressione di un tasto ) che non sia stato immesso nessun valore in una JTextField ???

grazie

ciao

LeleFT
27-11-2003, 21:37
Scusa... potresti essere più chiaro?
Devi controllare se una JTextField contiene o meno un valore dopo aver premuto un tasto della tastiera, intercettato da una finestra? O da un controllo particolare? O dalla JTextField stessa?? Oppure sulla pressione di un pulsante (JButton)?


Grazie,

Ciao.

hannibal/p
27-11-2003, 21:41
ho bisogno di sapere se è stato scritto qualcosa o meno ( se non è stato scritto nessun valore visualizzo il messaggio di errore e invito a scrivere qualcosa

LeleFT
27-11-2003, 21:56
Qualcosa del genere potrebbe fare al caso tuo? (supponendo che la tua JTextField si chiami jtf)


if (jtf.getText().equals("")) {
// Mando un messaggio d'errore
} else {
// L'utente ha scritto qualcosa
}



Ciao.

hannibal/p
27-11-2003, 22:05
grazie pr la risposta.
posso farti una domanda un pò + difficile???
ho bisogno di lanciare una applicazione esterna alla pressione di un JButton. sono riuscito a farlo, ma ho bisogno che all'avvio dell'applicazione esterna e per tutta la durata della stessa, il mio programma java deve visualizzare una Jdialog modale che si chiude solo al termine dell'applicazione esterna.
spero di essermi spiegato
grazie
ciao

LeleFT
27-11-2003, 23:49
Non so se si può fare: credo che Java non possa avere controllo sulle applicazioni esterne (dovrebbe interagire con il sistema operativo e questo è al di fuori degli obiettivi di Java).
Comunque mi documenterò per sapere se in qualche modo è possibile tenere traccia della vita di un processo separato.


Ciao.

hannibal/p
27-11-2003, 23:53
io ho trovato questo waitFor() che server per verificare se un processo figlio viene chiuso ma non riesco ad integrarlo alla mia applicazione

questo è un esempio funzionante che ho trovato in rete



import java.io.*;

public class EseguiComando {

public static void EseguiComando (String Comando) throws IOException
{
Process proc = Runtime.getRuntime().exec("start command /c "+Comando+" >output.txt");
char c;
try {
proc.waitFor();
}
catch (InterruptedException e) {
System.out.println("E' stata rilevata una InterruptedException: "+e.getMessage());
}
InputStream f = new FileInputStream ("output.txt");
while ((c=(char)f.read())!=(char)-1)
System.out.print(c);
}

public static void main (String args[]) throws IOException
{
String Comando = new String();
int k;
for (k=0;k<args.length;k++) {
if (k>0) Comando = Comando + " ";
Comando = Comando + args[k];
}
try {
System.out.println("Comando: "+Comando);
EseguiComando(args[0]);
}
catch (IOException e) {
System.err.println ("E' stata rilevata una IOException: "+e.getMessage());
}
}

}



ciao

Lancill
28-11-2003, 00:10
Ciao, credo che quello che ti serve è proprio Process.waitFor(); (che c'è anche nell'esempio che hai postato) visto che blocca il thread corrente fino a che proc non ha finito il suo lavoro!
Quindi potresti far apparire la JDialog subito prima di far partire il processo figlio e farla scomparire appena ritorna la funzione waitFor();


:ciauz:

hannibal/p
28-11-2003, 00:11
si ma come faccio a creare una funzione ( che lancio alla pressione del pulsante ) nella mia applicazione??

Lancill
28-11-2003, 00:32
non ho capito la domanda :confused:

Loading