Requisitos para programar calendario perpetuo en JAVA: utilizar interfaz gráfica de usuario; implementar consulta de fecha y semana.
importar java.text.*;
importar javax.swing.*;
importar java.awt.event.* ;
Importar Java .util *;
//Importar Java .timer
La clase pública DataSimple implementa ItemListener. {
Host JFrame;
JLabel YearLabel, MonthLabel, showTextLabel, timeLabel
JTextArea showArea
JComboBox YearBox, MonthBox
JPanel panel_top, panel_down
estafa de contenedor;
//JTable mi mesa;
//JScrollPane JSpane;
Cadena año[]=nueva cadena[9000];
String mes[]= nueva cadena[12];
Fecha de hoy;
Calendario GregorianCalendar
//Cronómetro mi temporizador;
//TimerTask mi tarea;
int totalDays, startDay, I;
Cadena de caracteres selectYear, selectMonth.
Objeto[][]día = nuevo objeto [4][6];
Cadena final estática[]={ "Domingo", "Lunes", "Martes" " , "Miércoles", "Jueves", "Viernes" y "Sábado" };
Formato de fecha simple formato de hora = nuevo formato de fecha simple ("aaaaañoMMmesdddíaHH:MM:ss ");
Datos públicos simple()
{
MainFrame=new JFrame("Calendario analógico de diez mil años");
con = mainframe . ;
YearLabel=new JLabel("Seleccione año:");
etiqueta de mes = new JLabel(" Seleccione mes:");
for(int I = 1900;i<10000;i++)
{
Probar
{
// año[i-1900]=(nuevo entero(I)). toString();
año[I-1900]= cadena valor de(I);
}
Capturar (Excepción e)
{
Panel de opciones. ShowMessageDialog(Mainframe, "Excepción");
}
}
yearBox=new JComboBox(año);
yearbox setselecteditem. (" 2010 ");
cuadro de año . additem oyente(este);
for(int I = 0;i<12;i++)
{ p>
mes[i]=(nuevo entero(I)).
toString();
}
mesBox=new JComboBox(mes);
mesbox . setselecteditem(" 1 ");
mesbox . additem listener(this);
panel _ top = new JPanel();
panel _ top diseño(nuevo diseño de flujo()); p>panel _ top . add(etiqueta de año);
panel _ top . p>panel_top.add(monthBox);
con.add(panel_top, BorderLayout.North);
showArea = new JTextArea();
showarea. set editable(false);
showDate(2010, 1);
//myTable=new JTable(day, head);
add( showArea, BorderLayout Center);
ShowTextLabel=new JLabel("La hora actual es:");
hoy = new Date();
hora label = new JLabel(formato de hora. formato(hoy));
panel _ down = new JPanel();
panel _ down diseño (nuevo diseño de flujo()). ;
panel _ abajo . add(mostrar etiqueta de texto);
panel _ abajo .
con.add(panel_down, BorderLayout); . Sur);
//con.add(showArea, BorderLayout. Center);
mainFrame.setSize(400, 300);
conjunto principal. visible(verdadero);
mainframe.setdefaultcloseoperation(JFrame. EXIT _ ON _ CLOSE);
}
showDate público nulo (año entero, mes entero)
{
showarea. (" ");
cal=new GregorianCalendar(año,mes-1,1);
totalDays=cal.getActualMaximum(calendario.mes-día);
startDay=cal.get(calendario.día de la semana)-1;
for(I = 0;i<head.length;i++)
showarea.append(head [ I]+" ");
showarea . append(" \ n ");
//Espacios de salida antes del primer día, 8 espacios para cada elemento de salida.
for(I = 0;i<startingday;i++)
{
//día[0][I]=nuevo entero(0 ); p>
showarea . append(" ");
}
// Salida en secuencia todos los días, cada elemento de salida tiene 8 caracteres de ancho.
for(int días = 1; número de días & lt=número total de días; número de días++)
{/* for(int j = 0; j & lt5; j++) p>
{
for(int z = 0; z & lt7;z++)
{
if (! día[ j][z ]. Igual a (0))
{
día[j][z]=nuevo entero (día);
}* /
Si (días<10)
{
showarea . append("+días+" ");
}
else if(días & gt;=10)
{
showarea . append("+días+" ");
}
i++;
if (i==7)
{
showarea .append(" \ n ");
I = 0;
}
/*}
}*/
}
} p>
ItemStateChanged nulo público (evento del artículo e)
{
if(e . getstatechange() = = evento del artículo. Seleccionado)
{
seleccione año =(String)(año box. getselecteditem());
seleccione mes =(String)(mesbox. getselecteditem()); p >showDate(integer . parse int(seleccione año), integer . parse int(seleccione mes));
}
}
Principal vacío estático público ( String argv[])
{
nuevos datos simples();
}
}Captura de pantalla en ejecución: