Cómo hacer un calendario perpetuo desde un reloj
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
}
} p>
//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 >
}
}
}
}
}