AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[Lunghetto] Swing e interfacce utente

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian)
View previous topic :: View next topic  
Author Message
doGmaI
Guest





PostPosted: Wed Feb 25, 2004 5:15 pm    Post subject: [Lunghetto] Swing e interfacce utente Reply with quote



Ola!,
forse non è il titolo più adeguato, ma non sapevo bene come "indicare" il
subject, cmq il problema che ho è il seguente.

Sto cercando di aggiungere un'interfaccia grafica ad un programma già
esistente. Mi sono creato tutte le mie belle finestrelle, menù & C.

Questa interfaccia andrebbe a gestire un programma "in dos", ovvero in solo
testo. Il fatto è che nel programma, ci sono dei punti in cui viene
richiesto un'input all'utente tramite delle finestre (AWT) con dei
radioButton. Il programma resta in attesa della scelta in questo punto
while (finestraScelta.getScelta() == -1) {},
così facendo non si prosegue nell'esecuzione del metodo fintanto che non
viene effettuata la scelta.

Visto che non so ancora se è possibile spezzare la sequenza di
inzializzazione del programma in vari step, ho pensato di fare la stessa
cosa anche io, ovvero nella mia finestra swing con la lista delle opzioni ho
messo lo stesso metodo getScelta che non fa altro che ritornare (tramite una
return) il valore di una variabile (che è poi l'indice del radioButton
selezionato).

Il problema è che nella finestra principale dell'interfaccia, non mi compare
nemmeno la finestra con le opzioni (pre la precisione, la finestra "main" è
un JFrame, mentre la finestra della opzioni è un JInternalFrame (per
ottenere un effetto "SDI").

Ho provato eseguendo il codice passo passo ed effettivamente arriva al loop
in cui testo continuamente il valore della scelta con getScelta, ma non ha
ancora disegnato una singola riga della finestra opzioni.

C'è qualche modo per far si che prima venga disegnata la finestra e poi si
prosegua con l'esecuzione del metodo in cui è stata creata la finestra
opzioni stessa? Oppure una qualche istruzione (tipo un DoEvents per chi
conosce VB) che dica alla JVM di non "bloccarsi" nel loop ma di eseguire
anche gli altri compiti?

Grazie in anticipo
--
(¯`·.¸_¸.·´¯`·.¸_¸.·´¯)
byZ, doGmaI
[email]dogmai (AT) despammed (DOT) com[/email]
ICQ# 170836495
(_¸.·´¯`·.¸_¸.·´¯`·.¸_)
Back to top
Federico Gasperini
Guest





PostPosted: Thu Feb 26, 2004 9:06 am    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote



"doGmaI" <dogmai (AT) despammed (DOT) com> ha scritto nel messaggio
news:1kldatm3grivh$.aw3jyud31npj.dlg (AT) 40tude (DOT) net...
Quote:
Ola!,

ciao!

Quote:
radioButton. Il programma resta in attesa della scelta in questo punto
while (finestraScelta.getScelta() == -1) {},
così facendo non si prosegue nell'esecuzione del metodo fintanto che non
viene effettuata la scelta.

Questo è un pessimo modo per bloccare una applicazione in attesa di input!

Quote:
Il problema è che nella finestra principale dell'interfaccia, non mi
compare
nemmeno la finestra con le opzioni (pre la precisione, la finestra "main"
è
un JFrame, mentre la finestra della opzioni è un JInternalFrame (per
ottenere un effetto "SDI").

Potresti, invece, usare una JDialog modale che è bloccante,
oppure usare un protocollo con semafori usando i metodi lock()
e notify() su una variabile statica.

Federico



Back to top
doGmaI
Guest





PostPosted: Fri Feb 27, 2004 2:23 pm    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote



Il Thu, 26 Feb 2004 10:06:17 +0100, Federico Gasperini scrisse:

Quote:
"doGmaI" <dogmai (AT) despammed (DOT) com> ha scritto nel messaggio
Questo è un pessimo modo per bloccare una applicazione in attesa di input!
Sono perfettamente d'accordo, ma in attesa di informazioni sul funzionamento

dell'altro prgoramma, ho introdotto "una versione semplificata", giusto per
mantenere la massima compatibilità e non dovermi sbattere con riscritture di
parti di codice

Quote:
Il problema è che nella finestra principale dell'interfaccia, non mi
compare
nemmeno la finestra con le opzioni (pre la precisione, la finestra "main"
è
un JFrame, mentre la finestra della opzioni è un JInternalFrame (per
ottenere un effetto "SDI").

Potresti, invece, usare una JDialog modale che è bloccante,
oppure usare un protocollo con semafori usando i metodi lock()
e notify() su una variabile statica.

Federico
Non c'è modo di mettere modale un JInternalFrame?


--
(¯`·.¸_¸.·´¯`·.¸_¸.·´¯)
byZ, doGmaI
[email]dogmai (AT) despammed (DOT) com[/email]
ICQ# 170836495
(_¸.·´¯`·.¸_¸.·´¯`·.¸_)

Back to top
Federico Gasperini
Guest





PostPosted: Sat Feb 28, 2004 9:42 am    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote


"doGmaI" <dogmai (AT) despammed (DOT) com> ha scritto nel messaggio
news:2w3iy84egb4u$.15stgvrblfw6i.dlg (AT) 40tude (DOT) net...

Quote:
Non c'è modo di mettere modale un JInternalFrame?

--
(¯`·.¸_¸.·´¯`·.¸_¸.·´¯)
byZ, doGmaI
[email]dogmai (AT) despammed (DOT) com[/email]
ICQ# 170836495
(_¸.·´¯`·.¸_¸.·´¯`·.¸_)

Non mi sembra...

Federico



Back to top
doGmaI
Guest





PostPosted: Sat Feb 28, 2004 5:33 pm    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote

Il Sat, 28 Feb 2004 10:42:21 +0100, Federico Gasperini scrisse:

Quote:
"doGmaI" <dogmai (AT) despammed (DOT) com> ha scritto nel messaggio
news:2w3iy84egb4u$.15stgvrblfw6i.dlg (AT) 40tude (DOT) net...

Non c'è modo di mettere modale un JInternalFrame?
Non mi sembra...

Ed invece inserire un JDialog all'interno di un JDesktopPane come faccio con
i JInternalFrame?

--
(¯`·.¸_¸.·´¯`·.¸_¸.·´¯)
byZ, doGmaI
[email]dogmai (AT) despammed (DOT) com[/email]
ICQ# 170836495
(_¸.·´¯`·.¸_¸.·´¯`·.¸_)

Back to top
Federico Gasperini
Guest





PostPosted: Sun Feb 29, 2004 3:32 pm    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote


"doGmaI" <dogmai (AT) despammed (DOT) com> ha scritto nel messaggio
news:tluak7a2k5m8.lo4269eqm5l1$.dlg (AT) 40tude (DOT) net...

Quote:

Ed invece inserire un JDialog all'interno di un JDesktopPane come faccio
con
i JInternalFrame?


No, JDialog estende Window e non può essere usato come argomento per add().
Puoi estendere JInternalFrame e fare in modo che show() si blocchi fino a
che non si
verifica qualche evento:

....
private Object LOCK = new Object();

public void show()
{
super.show();
blocca();
}

public void blocca()
{
try
{
LOCK.wait();
}
catch (InterruptedException ex)
{
}
}

public void sblocca()
{
synchronized (LOCK)
{
LOCK.notify();
}
}
....

Usi sblocca nel listener che vuoi. Non l'ho provato il codice, ma a occhio
dovrebbe fermare l'esecuzione dopo show(); quindi invece di

....
while (finestraScelta.getScelta() == -1) {}
switch (finestra.getScelta())
....

avrai:

....
finestraScelta.show() // <- esecuzione bloccata
switch (finestra.getScelta())
....

oppure

....
finestraScelta.blocca() // <- esecuzione bloccata
switch (finestra.getScelta())
....

pensandoci bene, l'overload si show() è superfluo, se non
controproducente.

Federico



Back to top
doGmaI
Guest





PostPosted: Mon Mar 01, 2004 5:40 pm    Post subject: Re: [Lunghetto] Swing e interfacce utente Reply with quote

Il Sun, 29 Feb 2004 16:32:45 +0100, Federico Gasperini scrisse:

Quote:
No, JDialog estende Window e non può essere usato come argomento per add().
Puoi estendere JInternalFrame e fare in modo che show() si blocchi fino a
che non si

verifica qualche evento:
pensandoci bene, l'overload si show() è superfluo, se non
controproducente.

Federico
Bella!, proverò questo.

Grazie

--
(¯`·.¸_¸.·´¯`·.¸_¸.·´¯)
byZ, doGmaI
[email]dogmai (AT) despammed (DOT) com[/email]
ICQ# 170836495
(_¸.·´¯`·.¸_¸.·´¯`·.¸_)

Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.