Red de conocimiento informático - Material del sitio web - Cómo hacer un calendario perpetuo desde un reloj

Cómo hacer un calendario perpetuo desde un reloj

1. Representación: el siguiente es el código de implementación: /* Calendario */

Importar Java .

Importar evento Java

.

Importar Java.util.*;

Importar Java.util.regex.pattern;

Importar javax.swing.*;

Clase pública Demo28 extensión JFrame {

int m = 1;

String[] meselegir = { "1", "2", "3", "4", "5", "6 " , "7", "8", "9", "10",

"11", "12" };//Matriz de caracteres utilizada para almacenar el mes.

String[] columnNames = { "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado" } //Se utiliza para almacenar el día de la semana Matriz de caracteres.

calendario ca = calendario . getinstance();

panel de contenido del contenedor = getContentPane();

vector & lt string & gtvector = nuevo vector & lt String> ();

String[][]date = new String[6][7]; //Formato de los datos de visualización de la tabla

TextField tf//Cuadro de texto Los valores en años representativos.

JComboBox jb

JTable table; //Mostrar fechas en forma de tabla.

public void getDate(Año de cadena, Mes de cadena, Semana de cadena, int Max_Day) {

int n = 0, b = 0

//Will; La fecha del mes se almacena dinámicamente en el contenedor.

for(int j = 1; j & lt= Max _ Dayj++) {

vector . add(string . valor de(j)); }

//Cada vez que agregue datos a la tabla, borre los datos de la tabla original de antemano.

for(int x = 0; x & ltdate.length;x++){

for(int y = 0; y & ltdate[x].length;y++) {

fecha[x][y]= null;

}

}

//Cuándo es el primer día del mes siguiente Cuándo un día cae en un día de la semana, cree una tabla basada en el día de la semana.

for(int a = entero . parse int(semana)-1; a & ltdate[0]. length; a++) {

fecha[0][a]= nuevo String((String)vector . to array()[n]);

n++;

}

for(int I = 1;i& ltdate. longitud; i++) {

for(int j = 0; j & ltdate[i].

longitud; j++) {

if (n & ltvector.size()) {

fecha[I][j]= new String((String)vector . to array() [n]);

n++;

} De lo contrario

Romper

}

}

//Borra todos los datos en el contenedor para que se puedan almacenar datos nuevos la próxima vez.

mientras(b & lt; vector.size()) {

vector eliminar(b);

}

}

public void elegir fecha(String día){

JLabel label = new JLabel();

for(int y = 0; y & lt fecha. longitud; y++) {

for(int z = 0; z & ltdate[y]. length; z++) {

system out . ]+" ");

System.out.println(fecha);

if (fecha[y][z]!= null) {

Si (fecha[y][z]. es igual a (día)){

table . setselectionbackground(color . amarillo);

Retorno;

}

}

}

}

}

Pintura de vacío público() {

SetTitle("Calendario");

setBounds(200, 200, 350, 178);

addWindowListener(nuevo adaptador de ventana(){

vacío público cierre de ventana(evento de ventana e){

system(0);

}

});

int m =. 0;

cadena año = cadena. valor de(ca . get(Calendar. año)); //Obtiene el año de la hora actual del sistema y almacena el valor en la variable año.

string mes = string . value of(ca . get(Calendar.month)+1); //Obtiene el mes de la hora actual del sistema y almacena el valor en la variable mes.

string day = string . value of(ca . get(Calendar. Date)); //Obtiene la fecha de la hora actual del sistema y almacena el valor en la variable día.

ca.set(calendar.date,1); //Establece los datos del objeto de calendario en 1.

cadena semana = cadena . valor de(ca . get(Calendar. día de la semana)); //Calcula el día de la semana en el que se basa el primer día de este mes en función del objeto Calendario establecido. .

int Max _ Day = ca . getactualmaximum(Calendar.Date); //Obtiene el número de días del mes actual del sistema.

getDate(year, Month, Week, Max_Day);

//Obtiene el valor del mes que es el mismo que la hora actual del sistema de la matriz del mes.

for(int I = 0;i<monthchoose.lengthi++) {

if (monthchoose[i].equal to (mes)){

m = I ;

}

}

JToolBar toolBar = nueva JToolBar();

JButton b 1 = nuevo JButton(" < " ) ;

b 1. addmouse oyente(nuevo mimouse oyente 1());

JButton B2 = nuevo JButton(" > ");

B2. oyente(nuevo mi mouse oyente 2());

JLabel j 1 = nuevo JLabel(" año ");

JLabel J2 = nuevo JLabel(" mes ");

p>

TF = nuevo TextField(5);

TF . addkey oyente(nuevo mykey oyente());

tf.setText(año);

JB = new JComboBox(mes elegir);

JB . setselectedindex(m);

JB . addactionlistener(new myactionlistener 3()); >table = new JTable(fecha, nombre de columna);

//table . addmouse listening(new table mouse listening());

setpredredscrollableviewportsize(new dimension(350, 150));

JScrollPane JSP = new JScrollPane(table);

contentPane.add(jsp, BorderLayout.center

Seleccione fecha (Día) ;

barra de herramientas .add(b 1);

barra de herramientas .add(TF) . >barra de herramientas .add(j 1);

barra de herramientas .setLocation(0 , 0);

toolBar.setSize(400, 15);

contentPane.add(Toolbar, BorderLayout. Norte);

establecer visible(true);

Nuevo hilo (nuevo PaintThread()). start(); //Llama a la clase interna PaintThread y vuelve a dibujar de acuerdo con la configuración interna.

}

Public static void main(String[] args) {

demo 28 d28 = nueva demostración 28();

d28 . paint();

}

//Evento activado al hacer clic en el botón izquierdo.

La clase myMouseListener1 extiende MouseAdapter {

clic del mouse en vacío público (evento del mouse e){

String str = tf.getText(). trim(); //Obtener el valor del cuadro de texto

int I = integer .

I = I-1;

TF . settext(string . value of(I));

string new_year = string . // Almacena el valor del cuadro de texto que representa el año en la variable new_year. .

ca.set(calendar.year,i); //Establece el año del objeto Calendario al año establecido por el usuario.

String new _ mes = (String)JB . getselecteditem(); //Obtiene el valor del mes

ca.set(calendar. MONTH, integer . parse int(new _ MONTH ) -1); //Establece el mes del objeto Calendario al mes establecido por el usuario.

ca.set(calendar.date,1); //Establece los datos del objeto de calendario en 1.

string new_week = string . value of(ca . get(Calendar. day of the Week) // Calcula el día de la semana en el que se basa el primer día de este mes. Objeto de calendario.

int Max_Day = ca.getactualmaximum(Calendar.Date); //Calcula cuántos días hay en este mes según el objeto Calendario establecido.

getDate(new_year, new_month, new_week, Max_Day);

}

}

La clase myKeyListener extiende KeyAdapter {

p>

Clave nula pública liberada (evento clave e){

Pruebe {

int I = integer . parse int(TF . gettext() . trim( ));

int key = e . obtener código de clave();

if (key == KeyEvent.VK_Enter){

string new _ año = string. value of(I);

ca.set(calendar.year,i); //Establece el año del objeto Calendario al año establecido por el usuario.

String new _ mes = (String)JB . getselecteditem(); //Obtiene el valor del mes

ca.set(calendar. MONTH, integer . parse int(new _ MONTH ) -1); //Establece el mes del objeto Calendario al mes establecido por el usuario.

ca.set(calendar.date,1); //Establece los datos del objeto de calendario en 1.

string new _ semana = string. value of(ca

. Get (calendario. día de la semana) // Calcula si el primer día de este mes es una semana. basado en el objeto Calendario establecido Varios.

int Max_Day = ca.getactualmaximum(Calendar.Date); //Calcula cuántos días hay en este mes según el objeto Calendario establecido.

getDate(nuevo_año, nuevo_mes, nueva_semana, Max _ Día

}

} catch(NumberFormatException excepción){

Sistema); .out.println("¡El año que ingresó es incorrecto!");

}

}

}

//Haga clic Evento activado por el botón de la derecha.

La clase myMouseListener2 extiende MouseAdapter {

clic del mouse en vacío público (evento del mouse e){

String str = tf.getText(). trim();

int I = entero . parse int(str);

I = I+1

TF (I));

cadena nuevo_año = cadena . valor de(I); // Almacena el valor del cuadro de texto que representa el año en la variable nuevo_año.

ca.set(calendar.year,i); //Establece el año del objeto Calendario al año establecido por el usuario.

String new _ mes = (String)JB . getselecteditem(); //Obtiene el valor del mes

ca.set(calendar. MONTH, integer . parse int(new _ MONTH ) -1); //Establece el mes del objeto Calendario al mes establecido por el usuario.

ca.set(calendar.date,1); //Establece los datos del objeto de calendario en 1.

string new_week = string . value of(ca . get(Calendar. day of the Week) // Calcula el día de la semana en el que se basa el primer día de este mes. Objeto de calendario.

int Max_Day = ca.getactualmaximum(Calendar.Date); //Calcula cuántos días hay en este mes según el objeto Calendario establecido.

getDate(new_year, new_month, new_week, Max _ Day);

}

}

//Cuando el mouse hace clic en el cuadro de selección Evento activado.

La clase myActionListener3 implementa ActionListener {

acción nula pública realizada (evento de acción e){

cadena nuevo _ año = cadena valor de(ca . get(. Calendar. Year)); // Almacena el valor del cuadro de texto que representa el año en la variable new_year.

String new _ mes =(String)JB . getselecteditem() //Obtiene el mes establecido por el usuario.

ca.set(calendar. MONTH, integer. parse int(new _ MONTH)-1); //Establece el valor del mes del objeto Calendario en el mes definido por el usuario.

ca.set(calendar.date,1); //Establece los datos del objeto de calendario en 1.

string new_week = string . value of(ca . get(Calendar. day of the Week) // Calcula el día de la semana en el que se basa el primer día de este mes. Objeto de calendario.

int Max_Day = ca.getactualmaximum(Calendar.Date); //Calcula cuántos días hay en este mes según el objeto Calendario establecido.

getDate(new_year, new_month, new_week, Max_Day);

}

}

//Redibujar componente

p>

La clase privada PaintThread implementa Runnable {

Public void run(){

while (true) {

repaint();

Pruebe {

thread .sleep(100);

} catch (InterruptedException e) {

e . /p >

}

}

}

}

}