Salve Ragazzi
Ho la necessità di un calendario nella mia applicazione, in breve io vorrei che quando clicchi nel frame dove c'è un bottone "Scegli Data" si apre un nuovo frame con il calendario e con un bottone "ok" che quando premuto succede:
Il frame con il calendario si chiude e in una JTextField compare la data scelta.
cercando un po in giro ho scaricato la libreria JCalendar 1.3.2
http://www.toedter.com/download/jcalendar-1.3.2.zip
e lo usata per creare una classe Calendario come voglio io
eccola qui:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import com.toedter.calendar.JCalendar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
public class Calendario extends JFrame {
private JCalendar c;
private Date data;
public Calendario ()
{
super("Scegli la data");
data=new Date();
this.setResizable(false);
c= new JCalendar();
JPanel panel = new JPanel();
add(panel);
panel.add(c);
JButton ok = new JButton("Ok");
panel.add(ok);
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
data=c.getDate();
}
});
this.pack();
this.show();
}
public int getGiorno()
{
return data.getDay();
}
public int getMese()
{
return data.getMonth()+1;
}
public int getAnno()
{
return data.getYear();
}
public String getData()
{
return ""+getGiorno()+"/"+getMese()+"/"+getAnno();
}
}
questa classe viene chiamata nell'evento del bottone scegli data
btnData1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
Calendario cal = new Calendario();
txtData1.setText(cal.getData());
}
});
txtData1 e un componente di tipo JTextField
ovviamente come prevedibile la casella di testo conterrà la data odierna cioè la prima data che il calendario automaticamente seleziona all'inizio.
Come posso fare ?
ah un'altra cosa come posso fare a chiudere il frame del calendario quando clicco su ok?
GRAZIE!!!

Rispondi quotando