|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
[JAVA]Menu grafici
Per creare dei menu grafici(per menu intedo dei pannelli che ospitano dei JComponent) sto utilizzando dei JDialog.
In pratica ogni menu è un JDialog, quando premo un pulsante che mi porta in un menu non faccio altro che far apparire il JDialog corrispondente e far scomprarie quello che ospitava il pulsante appena premuto. Il problema è che c'è un piccolissimo lasso di tempo in cui il JDialog appare ma è ancora bianco, è veramente breve, e crea un effetto "flash" bianco che vorrei eliminare. Mi sa che questo problema è dovuto al fatto che per disegnare il contenuto del JDialog ci mette un po', visto che ci sono anche immagini e molto componenti, quindi credo che l'unica cosa da fare è rendere visibili tutti i menu(non sono molto sono 4-5) ma fuori schermo in modo che l'utente non possa vederli. In questo modo mi basterebbe portarli nella zona visibile dello schermo quando mi servono. Il problema è che mi verrebbe poi a mancare la caratteristica principale che mi ha portato a scegliere il JDialog, ovvera la possibilità di bloccare il Thread che chiama JDialog.setVIsible(true) fintanto che il JDialog(modale) è attivo. Quindi la domanda è: come posso fare a simulare una cosa del genere? Esempio: Codice:
... boolean modale=true; MyDialog dialog=new MyDialog(modale); dialog.setVisible(true);//Rendo visibile la JDialog(modale) e blocco l'esecuzione del thread corrente datiImportanti=dialog.getData(); ... Io ho provato a creare un metodo mostra() di questo tipo: Codice:
mostra(){
setBounds(schermoVisibile); //porta la JDialog( già visibile) in una zona dello schermo visibile
while(ocupato){
Thread.yield();
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ma il setModal(boolean) della JDialog ha effetto solo prima di renderla visibile?
Cioè se la creo non modale e la rendo visibile, poi non c'è modo di farla diventare modale quando mi pare? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Non puoi usare un JLayeredPane???
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Oddio non saprei non lo conosco!
Se me l'hai proposto significa che ci sarà un motivo vero? Io dall'alto della mia ignoranza non conosco questo componente! Non è che mi spiegheresti un attimo le sue proprietà? Dalla doc vedo che permette di avere tanti componenti sovrapposti e di spostarli avanti indietro come si desidera. Così a prima vista potrebbe fare al caso mio! Ma è possibile fermare un thread quando un certo componente è visualizzato? A me questo interessa! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Mi sto guardando la doc ma mi sembra che non possa essere bloccato come una JDialog modale, sbaglio?
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Andbin mi hai messo la pulce nell'orecchio ora! Non lasciarmi nella mia ignoranza!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:17.



















