Está en la página 1de 3

package project1; import java.awt.Dimension; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.

Calendar; import java.util.GregorianCalendar; import import import import import import import import import import javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JScrollPane; javax.swing.JSpinner; javax.swing.JTextArea; javax.swing.SpinnerListModel; javax.swing.SpinnerNumberModel; javax.swing.event.ChangeEvent; javax.swing.event.ChangeListener;

public class Frame1 extends JFrame { String sMeses[] = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio", "Agosto","Setiembre","Octubre","Noviembre","Diciembre"}; int DiasMeses[] = {31,28,31,30,31,30,31,31,30,31,30,31}; GregorianCalendar FechaActual = new GregorianCalendar(); int DiaActual = FechaActual.get(Calendar.DAY_OF_MONTH); int MesActual = FechaActual.get(Calendar.MONTH); int AoActual = FechaActual.get(Calendar.YEAR); private private private ctual,1)); private private private private private JSpinner spiDias = new JSpinner(); JSpinner spiMeses = new JSpinner(new SpinnerListModel(sMeses)); JSpinner spiAos = new JSpinner(new SpinnerNumberModel(AoActual,1980,AoA JScrollPane spaCalendario = new JScrollPane(); JTextArea txaCalendario = new JTextArea(); JLabel lblFecha = new JLabel(); JButton btnMesAnterior = new JButton(); JButton btnMesSiguiente = new JButton();

public Frame1() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.getContentPane().setLayout( null ); this.setSize( new Dimension(400, 300) ); spiAos.setBounds(new Rectangle(195, 15, 55, 20)); spiAos.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { spiAos_stateChanged(e); } }); spaCalendario.setBounds(new Rectangle(50, 75, 165, 120)); txaCalendario.setFont(new Font("Monospaced", 0, 11)); lblFecha.setBounds(new Rectangle(80, 50, 105, 20));

btnMesAnterior.setBounds(new Rectangle(50, 50, 20, 20)); btnMesAnterior.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnMesAnterior_actionPerformed(e); } }); btnMesSiguiente.setBounds(new Rectangle(195, 50, 20, 20)); btnMesSiguiente.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btnMesSiguiente_actionPerformed(e); } }); spiMeses.setBounds(new Rectangle(98, 15, 75, 20)); spiMeses.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { spiMeses_stateChanged(e); } }); spiDias.setBounds(new Rectangle(20, 15, 55, 20)); spiDias.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { spiDias_stateChanged(e); } }); this.getContentPane().add(btnMesSiguiente, null); this.getContentPane().add(btnMesAnterior, null); this.getContentPane().add(lblFecha, null); spaCalendario.getViewport().add(txaCalendario, null); this.getContentPane().add(spaCalendario, null); this.getContentPane().add(spiDias, null); this.getContentPane().add(spiMeses, null); this.getContentPane().add(spiAos, null); Inicializar(); } private void Inicializar() { spiMeses.setValue(sMeses[MesActual]); } private void spiDias_stateChanged(ChangeEvent e) { DiaActual = (Integer) spiDias.getValue(); } private void spiMeses_stateChanged(ChangeEvent e) { MesActual = ObtenerIdMes(spiMeses.getValue()); DiaActual = (DiaActual > DiasMeses[MesActual]) ? DiasMeses[MesActual] : DiaActual; SpinnerNumberModel spmDias = new SpinnerNumberModel(DiaActual,1,DiasMese s[MesActual],1); spiDias.setModel(spmDias); lblFecha.setText(sMeses[MesActual] + " " + AoActual); MostrarCalendario(); } private void spiAos_stateChanged(ChangeEvent e) { AoActual = (Integer) spiAos.getValue(); DiasMeses[1] = FechaActual.isLeapYear(AoActual) ? 29 : 28; if (MesActual == 1) spiMeses_stateChanged(null); MostrarCalendario(); } private int ObtenerIdMes(Object objMes) { int i=0; for ( ; i < sMeses.length; i++) if (sMeses[i].equals(objMes)) break; return i;

} private void MostrarCalendario() { txaCalendario.setText(" do lu ma mi ju vi sa" + "\n" + " "); GregorianCalendar Fecha = new GregorianCalendar(AoActual,MesActual,1); int DiaSemana = Fecha.get(Calendar.DAY_OF_WEEK); for (int i= 1; i < DiaSemana; i++) txaCalendario.append(" "); for (int i=1, col = DiaSemana; i <= DiasMeses[MesActual]; i++, col++) txaCalendario.append(((i<10) ? " " : "") + i + ((col % 7 == 0) ? "\n " + " " : " ") ); } private void btnMesAnterior_actionPerformed(ActionEvent e) { spiMeses.setValue(sMeses[--MesActual]); } private void btnMesSiguiente_actionPerformed(ActionEvent e) { spiMeses.setValue(sMeses[++MesActual]); } }

También podría gustarte