Uso básico de elementos Swing con NetBeans – 29 – Uso de Spinners, ejemplo 2.

Uso básico de Spinners en Java

Para este ejemplo utilizamos dos JSpinner, una para indicar fecha y otra para hora. Aparte de las etiquetas no se utiliza otro elemento, el diseño es bastante sencillo. El proceso es similar al ejemplo uno, se especifica el funcionamiento de cada línea de código con comentarios.

Tomar en cuenta los nombres de variable de cada objeto, se especifican los nombres en el diseño. Esto es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)

Lista de importaciones que necesitamos para trabajar con ciertos objetos. Además los métodos llamados desde el constructor del JFrame.

Código Java
import java.util.Calendar;
import java.util.Date;
import javax.swing.JSpinner;//Importaciones
import javax.swing.SpinnerDateModel;
import javax.swing.SpinnerModel;

/**
*
* @author Ariel
*/

public class UsoSpinnerDos extends javax.swing.JFrame {

/**
* Creates new form UsoJSliderDos
*/

public UsoSpinnerDos() {
initComponents();
setLocationRelativeTo(null);//Centrar formulario
inicio();//Método de arranque
}
Calendar calendar = Calendar.getInstance();//Variable de Objeto Calendar

Para este ejemplo requerimos de un solo método privado, que se iniciará desde el constructor del JFrame y permitirá inicializar los spinners. Se especifica el funcionamiento de cada línea de código utilizando comentarios. No se requieren eventos para este ejemplo.

Código Java
    private void inicio(){
//Obtenemos una fecha de inicio, será la fecha actual del sistema
Date inicio = calendar.getTime();
//Indicamos año hasta -100 del actual
calendar.add(Calendar.YEAR, -100);
//Guardamos la configuración en un DATE
Date fechaAnterior = calendar.getTime();
//Indicamos año hasta +200 del actual
calendar.add(Calendar.YEAR, 200);
//Guardamos la configuración en un DATE
Date fechaPosterior = calendar.getTime();
//Usamos el contructor de abajo para crear un modelo para el Spinner
//SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
//Utilizamos los datos que creamos más arriba
//Para fecha utilizamos Calendar.YEAR y para hora Calendar.HOUR, el resto puede ser igual
SpinnerModel fechaModel = new SpinnerDateModel(inicio, fechaAnterior, fechaPosterior, Calendar.YEAR);
SpinnerModel horaModel = new SpinnerDateModel(inicio, fechaAnterior, fechaPosterior, Calendar.HOUR);
//Indicamos el model para cada Spinner además del formato de fecha y hora según corresponda.
fecha.setModel(fechaModel);
fecha.setEditor(new JSpinner.DateEditor(fecha, "dd/MM/yyyy"));
hora.setModel(horaModel);
hora.setEditor(new JSpinner.DateEditor(hora, "HH:mm:ss"));
}

Ahora sí, podemos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida) (clic sobre la imagen para ampliar)

3 comentarios :

  1. Tengo 2 spinner de tipo Date sin la hora, solo la fecha. Lo que me pasa es que cuando lo pruebo, y le doy a las flechas para cambiar la fecha, también se me cambia el otro spinner automáticamente. No se por qué. Me podrían ayudar?

    ResponderEliminar
    Respuestas
    1. Que tal. Solo viendo el código podría saber cuál es el problema.

      Eliminar