Uso básico de elementos Swing con NetBeans – 28 – Uso de Spinners, lista de elementos.

En esta oportunidad pondremos en funcionamiento tres Spinnes, que contendrán una lista de días meses y años respectivamente. Como sabemos un spinner puede contener diferentes tipos de elementos sean estas numéricas o no. Para el ejemplo agregaremos tres Spinnes que contendrán cada uno un modelo específico de elementos que se contendrán en Arrays y enteros. Dependiendo del caso se pueden utilizar SpinnerListModel o SpinnerNumberModel.

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 javax.swing.SpinnerListModel;
import javax.swing.SpinnerModel;//Importaciones
import javax.swing.SpinnerNumberModel;

/**
*
* @author Ariel
*/

public class UsoSpinner extends javax.swing.JFrame {

/**
* Creates new form UsoSpinner
*/

public UsoSpinner() {
initComponents();
setLocationRelativeTo(null);//Centrar Formulario
inicio();
}
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(){
//Array de String para los días y meses
String[] d = {"Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"};
//El array mes puede contener un registro vacío, se puede corregir con un pequeño ajuste...
String[] mes = new java.text.DateFormatSymbols().getMonths();
//Tipo entero para año
int an = calendar.get(Calendar.YEAR);

//Especificando modelos para cada Spinner
SpinnerListModel modelDias = new SpinnerListModel(d);
SpinnerListModel modelMes = new SpinnerListModel(mes);
//Parámetro numéricos
//public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
//Valor inicial - valor mínimo - valor máximo - incremento a 1
SpinnerModel modelAnyo = new SpinnerNumberModel(an, an - 100, an + 100, 1);
//Agregamos el modelo a cada Spinner
dias.setModel(modelDias);
meses.setModel(modelMes);
anyos.setModel(modelAnyo);
}

Llegado a esta parte podremos 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)

2 comentarios :

  1. Si se quisiera colocar el contenido de los Spinner en un solo Label como seria?

    ResponderEliminar
    Respuestas
    1. Que tal. No creo que un Objeto Spinner pueda agregarse dentro de un jLabel. Si entiendo bien tu pregunta. Saludos.

      Eliminar