Capturando fechas de un JDateChooser
Entre los componentes que forman parte del paquete de JCalendar desarrollados por Kai Tödter encontramos uno que es muy útil llamado el JDateChooser. Por lo que he leído en distintas páginas en el internet, muchos tienen problemas para capturar las fechas seleccionadas. Pues en este post vamos a aprender a capturar las fechas del JDateChooser así como darle el formato que uno desee. A lo largo de este post vamos a desarrollar la aplicación que muestro en la siguiente imagen:
En primer lugar para poder dar formato a un JDateChooser, este tiene un atributo el cuál podemos modificar de acuerdo a nuestras necesidades. La forma de cambiarlo es como se muestra en las siguientes imágenes:
Una vez seleccionado el atributo que queremos modificar, le ingresamos el formato que mejor se ajusta a nuestras necesidades, como se muestra en la siguiente imágen:
Pero aún haciendo esto, aún no se ha explicado la forma de capturar la fecha. Bueno, una forma de hacerlo es como muestro en el siguiente bloque de código:
try { String formato = comboFormato.getSelectedItem().toString(); //Formato Date date = SelectorFecha.getDate(); SimpleDateFormat sdf = new SimpleDateFormat(formato); txtFechaSeleccionada.setText(sdf.format(date)); } catch(NullPointerException ex) { JOptionPane.showMessageDialog(this, "Al menos selecciona una fecha válida!", "Error!", JOptionPane.INFORMATION_MESSAGE); }
Con eso podremos obtener la fecha y colocarla en una etiqueta de texto o como parte de una cosulta SQL.
Para obtener el día, el mes o el año por separado podemos hacer lo siguiente:
int año = SelectorFecha.getCalendar().get(Calendar.YEAR); int mes = SelectorFecha.getCalendar().get(Calendar.MONTH) + 1; int dia = SelectorFecha.getCalendar().get(Calendar.DAY_OF_MONTH); txtDía.setText("" + dia); txtMes.setText("" + mes); txtAño.setText("" + año);
Con eso bastará para poder obtener la fecha y darle el formato que se desee.
Aún así, si no nos gusta usar los componentes de JCalendar podemos escribir nuestro propio calendario. Yo hice uno, el cuál se puede apreciar en la imágen a continuación:
No es la gran cosa, pero con un poco más de tiempo se puede ir mejorando, hasta obtener resultados óptimos.
También podría interesarte este post que muestra cómo manejar los eventos de cambio de fecha en un jcalendar.
También podría interesarte este post que muestra cómo manejar los eventos de cambio de fecha en un jcalendar.
Bueno, para cerrar el post les dejo el link de descarga del proyecto que fué realizado en Netbeans IDE 6.8 usando jcalendar-1.3.3
Para los que decean modificar el campo fechadate
ResponderBorrardel JDatechooser:
JDateChooser comboBoxFecha=new JDataChooser();
comboBoxFecha.setDate(f.getFecha());
// f.getFecha()-->Date
esa es la forma en la q cambie mi date de mi
comboBoxFecha;
Si de algo les sirve
Tienes idea de como usar este componente en un Jtable???
ResponderBorrarMuy bueno tu trabajo me sirvió mucho!!!
ResponderBorrarhola buenas men,oyes sabes sobre reportes en java,que me genere la tabla que tengo activa y que me genere el reporte en java en formato .PDF,yo lo que hago es que primero lo hago lo creo lo diseño y desde l software lo compilo y lo creo y me lo manda a llamar pero no hay manera que le diga si tengo tantos datos y automaticamente que le diga generame el reporte de estos datos,que me lo haga,eso me pregunto sigo en busca de esto saludos men..bye
ResponderBorrarHola, necesito ayuda,
ResponderBorrarestoy haciendo un sistema de control de contratos. y necesito manejar los jdatechooser, lo que tengo que hacer es seleccionar a traves de un jdatechooser y validarlo (la validacion debe ser que la fecha inicial "NO" tiene que ser mayor a la fecha de termino) y la fecha se almacenan en una base de datos MySql, gracias de antemano y ojala me puedas ayudar... no puedo poner nada de codigo por que no lo tngo, estoy desarrollando con netbeans 7.0.1 con swing
Ayuda, por favor!!
ResponderBorrarComo puedo mostrar en JDatechooser una fecha que la tengo en una tabla.
excelente!
ResponderBorrarcaptura el elemento de la tabla con
ResponderBorrartabla.getValueAt(1, 2);
1 y 2 son las coordenadas de la tabla y lo almacenas en una variable de tipo String y lo envias al JDatechooser.
espero haberte ayudado
Gracias esto era justo lo que buscaba! :D
ResponderBorrarDate date = SelectorFecha.getDate();
SimpleDateFormat sdf = new SimpleDateFormat(formato);
txtFechaSeleccionada.setText(sdf.format(date));
EXELENTEEEE YA ME ESTABA DESESPERANDO Y ESTE CODIGO ME RESOLVIO MI PROBLEMA.
ResponderBorrar01.try {
02. String formato = comboFormato.getSelectedItem().toString();
03. //Formato
04. Date date = SelectorFecha.getDate();
05. SimpleDateFormat sdf = new SimpleDateFormat(formato);
06. txtFechaSeleccionada.setText(sdf.format(date));
07.} catch(NullPointerException ex) {
08. JOptionPane.showMessageDialog(this, "Al menos selecciona una fecha válida!", "Error!", JOptionPane.INFORMATION_MESSAGE);
09.}
super exelente post!!!! 10 de 10
Hola quiero saber como puedo evitar que los usuarios me escriban en un JDateChooser y como puedo limpiar este componente una ves e almacenado la información en la BD
ResponderBorrarGracias
CADD
JDateChooser no editable:
ResponderBorrarJCalendar d = new JDateChooser().getJCalendar();
JSpinner sp = (JSpinner) d.getYearChooser().getSpinner();
((JTextField)sp.getEditor()).setEditable(false);
Saludos.
Amigo un favor en que parte inserto este codigo, o algun campo hay que cambiarlo por el nombre de mi JDateChooser?
BorrarTe agradezco la ayuda
gracias me fue de mucha ayuda :D
ResponderBorrarHola, mira yo tengo un DateChooserCombo, que es un calendario donde se pueden seleccionar varios dias, queria saber si alguno me podria ayudar a capturar la fecha de cada uno de los dias seleccionados..
ResponderBorrarMuchas gracias
alguien sabe como hago para que mi jdatechooser me muestre la fecha actual
ResponderBorrar????
jdatechooser.setDate(new Date());
ResponderBorrarBug en el JDateChooser?
ResponderBorrarSaludos, a alguien le ha sucedido que cuando estableces el Calendar objet del día de hoy en el jDateChooser, luego de que el usuario lo edita y cambia la fecha, al querer obtener de nuevo el objeto Calendar, éste ha perdido las horas, minutos y días? yo necesito que tenga tiempo además de la fecha pero cuando ya ha sido editado el JDateChooser devuelve algo como esto 2012/12/12 00:00:00
ese codigo sirve para el combo choseer?
ResponderBorrarEnviado desde mi tablet
Saludos
ResponderBorrarEstoy realizando una aplicación de escritorio en eclipse es de ingreso de datos a una base en MySQL........pero la fecha debo sacarla de un jdatechooser y ese dato poner en la base...........si me puedes ayudar muchas gracias.........
HAY CASOS EN LA QUE SE DESEA ALMACENAR EN MANERA AUTOMATO POR EJEMPLO UN REGISTRO DE USUARIO Y EN OTRAS SEECCIONANDO LA FECHA TALVES TE SIRVA DE ALGO
ResponderBorrarAQUI TE DEJO EL CODIGO DE UN INGRESAR LA FECHA POR SISTEMA
///CREANDO UN METODO
public String Fecha_Sistema() {
String sinta;
java.util.Date date = new java.util.Date(System.currentTimeMillis());
String hora = (date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
Calendar cal1 = Calendar.getInstance();
String otrodato;
otrodato = String.valueOf(cal1.get(Calendar.YEAR) + "-" + cal1.get(Calendar.MONTH) + "-" + cal1.get(Calendar.DATE));
sinta = otrodato + " " + hora;
return sinta;
}
Y AORA LO QUE SE NECITA ES SABER COMO INGRESARLO EN ESTE CASO MI PROCESO ES CON PROCEDIMIENTOS ALMACENADOS
EN EL METODO QUE VAS A GUARDAR
fecha = (String) Fecha_Sistema();//FECHA_SISTEMA DEL METODO
PreparedStatement pstmt = conn.prepareStatement("{call guardar_cliente(?,?,?,?,?,?,?,?,?,?)}");
pstmt.setString(1, cod);
pstmt.setString(2, dni);
pstmt.setString(3, nom);
pstmt.setString(4, ape);
pstmt.setString(5, nac);
pstmt.setString(6, da);
pstmt.setString(7, ema);
pstmt.setString(8, tel);
pstmt.setString(9, fecha);//AQUI ES DONDE ENVIAS LA FECHA
pstmt.setString(10, idsex);
pstmt.executeUpdate();
JOptionPane.showMessageDialog(null, "registro almacenado");
No se de donde saliste men , llegaste del cielo se te agradece mucho era lo que necesitaba gracias enserio , sigue asi ;D ... sludos
ResponderBorrarque bien que te aya servido tambien tengo el ingreso de fecha seleccionando de un jcalendar es algo similar solo se necetia convertir nada mas pero si alguien lo nesita este es mi correo
ResponderBorrarvera_1566_love@hotmail.com
Saludos y gracias por el aporte, tengo una consulta , se puede asignar una fecha particular al jdatechooser , por ejemplo si quisiera que me cargue al iniciar el programa con un año específico, mejor dicho que cargué con un año que le asigné yo, por normalmente me carga el año del sistema , agradecería tu respuesta gracias
ResponderBorrarHola de acuerdo a tu progunta imajino que te refieres al componente Jyear Chooser que año entonces lo que pude ver es que se puedo modificar un año en especifico y que cuando se inicie carge con la fecha que se a modificado solo esta en la opcion propiedades tiene otra opcion que se llama value por defecto te la fecha(2013)pero solo modificalo esa opcion y lo cambias por 201xxxxel año que quieras y guardas los cambios entonces tu fecha inicia ya de la manera en que tu lo has estipulado.
ResponderBorrarespero que esa sea tu consulta.
hola Alguien sabe como cambiar la fecha del jdatechooser desde un spinner ??
ResponderBorrarMUY UTILMUCHAS GRACIAS.
ResponderBorrarmuchas gracias amigo, tenia rota la cabeza por ese datachooser
ResponderBorrarMuchas gracias!!
ResponderBorrarDisculpen no entiendo mucho el jdatechooser, y tengo una duda de este código SelectorFecha que vendría siendo?
ResponderBorrarSelectorFecha es una instancia de la clase JDateChooser y es el control que hemos agregado en el JFrame, saludos.
ResponderBorrarsaludos, me gustaria saber como le quito el formato 00.00.00. Ejemplo
ResponderBorrarCuando inserto un fecha seleccionada de mi JDateChooser me affichar . Ejemplo. 2014-06-01 00:00:00.0 . Entonces me gustaria saber como puedo quitar los ceros y quedarme solo con la fecha..saludos
if (txtdni.getText().equals("")) {
ResponderBorrarJOptionPane.showMessageDialog(this, "Debe de ingresar su id !");
txtdni.requestFocusInWindow();
return;
}
conexion datos = new conexion();
usuarios usuario = datos.getUsuario(txtdni.getText());
if (!(usuario == null)) {
JOptionPane.showMessageDialog(this, "El usuario ya existe, por favor cambie su nombre de usuario !");
txtdni.requestFocusInWindow();
return;
}
String fecha;
usuario = new usuarios(
dni.getText(), primernombre.getText(),
segundonombre.getText(),
apellidopaterno.getText(),
apellidomaterno.getText(),
direccion.getText(),
telefono.getText(),
celular.getText(),
documento.getSelectedItem().toString(),
fechanacimiento.getSelectedItem().toString(),
ciudad.getSelectedItem().toString(),
sangre.getSelectedItem().toString(),
area.getSelectedItem().toString(),
eps.getSelectedItem().toString(),
empresa.getSelectedItem().toString(),
ficha.getText()
);
if (datos.insertUsuario(usuario)) {
JOptionPane.showMessageDialog(this, "Usuario creado correctamente !");
} else {
JOptionPane.showMessageDialog(this, "Usuario no ha sido creado, por favor intente más tarde !");
return;
}
Por favor alguien q me ayude como hago para consultar desde una fecha hasta otra fecha ayuda por fa
ResponderBorrarpor favor alguien me puede ayudar en este tema al tratar de insertar en jdatechooser al formulario de netbeans mesale este cuadrito diciendome.
ResponderBorrarfailed to create an instance of com.toedter
ayuda como hago para listar objetos con un rango de fechas?
ResponderBorrarMuchas Gracias
ResponderBorrarMe fue de Mucha ayuda
Atentamente,
Jose Gabriel Herrera Delgado
Hola, me podrían ayudar a pasar la fecha de un JDateChooser para la consulta de un query que el resultado lo arroja en un jtable
ResponderBorrarexcelente ejemplo muchas gracias por la ayuda
ResponderBorrarSos un monstruo muchísimas gracias por la segunda manera "int año = this.calendario.getCalendar().get(Calendar.YEAR);" que realmente me funcionó de maravilla!
ResponderBorrarComo puedo jalar el valor del JDateChooser a una JTextField , cabe señalar que esta caja de texto la quiero meter a una consulta de mysql y filtre esa fecha seleccionada. asi miren:
ResponderBorrarsSQL = "Select nombre_emi,"
+ "rfc_emi,"
+ "UUID,"
+ "fecha,"
+ "nombre_rec,"
+ "serie,"
+ "descripcion,"
+ "valoruni,"
+ "formaDePago,"
+ "metodoDePago,"
+ "tipoDeComprobante,"
+ "Percepciones,"
+ "total,"
+ "total_I_R,"
+ "total_I_T"
+ " from "
+ "fac_nom "
+ "WHERE CONCAT(serie='" + txt_serie.getText() + "' and (fecha >='" + JTextField+ "' and fecha<='" + txt_fecha_fin.getText() + "')) and tipo_xml='factura electronica'";
quisiera que me ayudaran con la linea de codigo; quiero mostrar en una consulta a la base de datos mysql el campo fecha_creacion (jdatechooser) el formato es yyy-MM-dd; desde netbeans. gracias por su atencion.
ResponderBorrarQUISIERA QUE ME AYUDEN CON UN PROBLEMITA Q TENGO CON EL JDATECHOOSER ESTOY HACIENDO UNA CONSULTA A LA BASE DE DATOS Y QUIERO MOSTRAR LA FECHA QUE DEBO HACER PARA MOSTRARLA EN MODULO DE CONSULTA, GRACIAS...!
ResponderBorrarHola. Sabrías como poder deplegar un JDateChooser al dar enter sobre el JtextField de JDateChooser sin tener que necesariamente hacerlo con el mause
ResponderBorrarGracias fue de gran ayuda.
ResponderBorrar