|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[JAVA] JCalendar in un JDialog e restituzione data su click
Salve a tutti,
sto cercando di realizzare, tramite l'utilizzo della classe JCalendar di toedter.com, un sistema in cui premendo un bottone compaia un JDialog con all'interno un JCalendar. Fin qui non ci sono problemi ovviamente, ma quello che vorrei fare è la seguente cosa: al click dell'utente su un giorno il JDialog dovrebbe chiudersi e dovrebbe restituire al chiamante la data selezionata. Un po' come funziona la logica del JOptionPane, che alla pressione del tasto YES o NO (ad esempio) restituisce 1 o 0. Come posso fare? Anche leggendo la documentazione non riesco a trovare un modo per realizzare questo meccanismo. Inoltre la cosa dovrebbe essere bloccante, ovvero: Al clik su un JButton, dovrebbe partire questo JDialog, e solo alla chiusura dovrebbe procedere con i passi successivi. Esattamente come si comporta il JOptionPane. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Per rendere la cosa bloccante basta che crei una JDialog modale, con la modalità di default, usando uno dei costruttori che accettano, tra gli altri, un parametro booleano.
Se invece vuoi specificare una modalità diversa da quella di default [Application Modal, mi pare] devi utilizzare uno dei due costruttori che accettano come terzo parametro una enum Dialog.ModalityType. Se non ho capito male, la dialog che mostri, modale, contiene solamente il JCalendar, allo scopo di forzare l'utente a scegliere una data per poter chiudere la dialog. Se questo è lo scopo, un accorgimento che potresti usare è quello di impedire all'utente di chiudere la dialog semplicemente premendo il pulsante[x] che compare sulla barra del titolo (impostando con il metodo setDefaultCloseOperation la proprietà defaultCloseOperation a JDialog.DO_NOTHING_ON_CLOSE) e chiudendo programmaticamente la dialog con una chiamata (setVisible(false)) al momento opportuno. Il momento opportuno è quando l'utente ha scelto una data: non conosco JCalendar, ma se hai documentazione e sorgenti prova a vedere se esso emette un evento in corrispondenza del setting della data corrente e in tal caso potresti registrare un listener adatto e gestire la chiusura della dialog.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Guarda ho risolto con JOptionPane.
Se gli passo come "message" che è di tipo Object, il mio JCalendar, posso fare tutto questo senza scomodare il JDialog! ![]() Grazie! |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:05.