Introducción a JSpinner
JSpinner es un componente que nos permite seleccionar una entrada que puede ser un objeto o un valor numérico de una secuencia ordenada de un campo de entrada. JSpinner es una clase y está disponible en el paquete javax.swing. Al igual que su nombre sugiere que hace girar su valor hacia arriba y hacia abajo, no contiene una lista desplegable para seleccionar una entrada. Básicamente contiene flechas hacia arriba y hacia abajo. Cuando intentamos presionar las flechas, nos muestra la entrada de acuerdo con nuestros requisitos.
Constructores de JSpinner
JSpinner contiene dos constructores que funcionan de la siguiente manera:
- JSpineer (): crea una ruleta vacía con el valor predeterminado establecido en cero. Es un tipo de constructor predeterminado sin argumento.
- JSpineer (modelo SpineerModel): toma SprineerModel como argumento que decide su valor de secuencia.
Sintaxis de la clase Jspineer
public class JSpinner extends JComponent
implements Accessible
La clase JSpinner extiende la clase JComponent e implementa la interfaz accesible. Aquí JComponent es la superclase para todos los componentes de swing. Cualquier clase cuyo nombre comience con 'J' es la clase secundaria para Jcomponent. Jcomponent amplía aún más la clase Container. Esta clase nos proporciona el soporte para agregar componentes al contenedor. Ahora la interfaz accesible nos proporciona varias clases e interfaces que se utilizan para definir un contrato entre la tecnología de asistencia y la aplicación accesible. Devuelve el objeto del objeto AccessibleContext que se convierte para proporcionar información sobre otros componentes.
Métodos JSpineer
Diferentes métodos disponibles en JSpineer:
- SpineerNumberModel (valor int, int max, int min, int paso): este método toma cuatro argumentos. El valor inicial de la ruleta sería un valor establecido en el parámetro 'valor'. Ahora podemos especificar un valor máximo para un spineer, es decir, el parámetro 'max', también podemos definir un valor mínimo, es decir, el parámetro 'min' y el último parámetro es 'step', que es responsable de aumentar o disminuir el valor del spineer con una diferencia especificada .
- SpineerListModel (List I): crea un objeto modelo spineer con el elemento List. Solo se requiere pasar un argumento.
- getPreviousValue (): este método podemos decir que actúa como un captador para que esta clase obtenga el valor anterior de la ruleta.
- getnextValue (): este método actúa como un captador para obtener el siguiente valor de spineer.
- setValue (Object v): este método actúa como un método setter para establecer el valor de un objeto pasado como argumento.
- getValue (): también es un método getter que devuelve el valor actual de spineer.
Ejemplos de jspineer
Veamos ahora algunos de los ejemplos.
Ejemplo 1
En este ejemplo, crearemos un JSpineer básico para principiantes. Crearemos una clase java simple que extenderá el JFrame dentro de él. Necesitamos crear el objeto de JFrame, JSpineer, ambas clases están disponibles en el paquete javax.swing. Podemos establecer los límites para el spinner llamando al método setBounds () que toma cuatro argumentos. Luego necesitamos definir el diseño para nuestro marco llamando a setLayout (). Finalmente, necesitamos agregar nuestro componente JSpinner al objeto de marco y, por último, definiremos el tamaño de nuestro marco llamando a setSize (), que tomará dos argumentos.
A continuación puede encontrar el ejemplo de JSpinner.
import javax.swing.JFrame;
import javax.swing.JSpinner;
public class SpineerDemo extends JFrame (
// frame
static JFrame frame;
// default constructor
SpineerDemo()
(
)
// main class
public static void main(String() args)
(
// create a new frame
frame = new JFrame("spinner");
// create a JSpinner
JSpinner spineer = new JSpinner();
// set Bounds for spinner
spineer.setBounds(100, 100, 50, 40);
// set layout for frame
frame.setLayout(null);
// add panel to frame
frame.add(spineer);
// set frame size
frame.setSize(400, 400);
frame.show();
)
)
Simplemente ejecútelo como una aplicación Java, aparecerá una nueva ventana emergente que contendrá su Jspineer dentro del marco. A continuación encontrará la salida adjunta.
Ahora podemos presionar la flecha para cambiar el valor de la ruleta.
Ejemplo # 2
Ahora veremos un ejemplo más para elegir la fecha de nacimiento del Jspineer.
package com.cont.article;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.SpinnerListModel;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class DateOfBirthSpinner extends JFrame implements ChangeListener (
// frame
static JFrame frame;
// define label
static JLabel label, label1;
// define spinner
static JSpinner spineer, spineer1, spineer2;
// default constructor for class
DateOfBirthSpinner()
(
)
// main class
public static void main(String() args)
(
// createing an object of the class
DateOfBirthSpinner sp1 = new DateOfBirthSpinner();
// create a new frame
frame = new JFrame("spinner");
// create a label
label = new JLabel("select your date of birth");
label1 = new JLabel("1 October 2010");
// create a JSpinner with a minimum, maximum and step value
spineer = new JSpinner();
spineer1 = new JSpinner(new SpinnerNumberModel(1, 1, 31, 1));
// setvalue of year initializing year
spineer.setValue(2000);
// store the months create array
String months() = ( "January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October", "Novemeber", "December" );
// create a JSpinner with list of values
spineer2 = new JSpinner(new SpinnerListModel(months));
// adding change listener to spinner
spineer.addChangeListener(sp1);
spineer1.addChangeListener(sp1);
spineer2.addChangeListener(sp1);
// set Bounds for all three spinner
spineer.setBounds(70, 70, 50, 40);
spineer1.setBounds(70, 130, 50, 40);
spineer2.setBounds(70, 200, 90, 40);
// setbounds for all label
label.setBounds(10, 10, 150, 20);
label1.setBounds(10, 300, 150, 20);
// set layout for frame
frame.setLayout(null);
// add label to frame object
frame.add(label);
frame.add(label1);
frame.add(spineer);
frame.add(spineer1);
frame.add(spineer2);
// add panel to frame object
frame.add(spineer);
// set frame size
frame.setSize(300, 300);
frame.show();
)
// if the state is changed for spinner set value to label
public void stateChanged(ChangeEvent e)
(
label1.setText(spineer1.getValue() + " " + spineer2.getValue() + " " + spineer.getValue());
)
)
A continuación puede encontrar la salida del programa anterior.
Aquí estamos definiendo tres hilanderos para el año, mes y fecha. Así que vamos a definir tres hilanderos aquí.
Conclusión - JSpinner
JSpinner se puede usar donde se requiere una entrada de tipo número o objeto en una secuencia o en orden. Que puede ser incremental o decremento y el orden de valor quiere persistir. En ese escenario, podemos ir por JSpineer.
Artículos recomendados
Esta es una guía de JSpinner. Aquí discutimos constructores, sintaxis y métodos de JSpinner junto con diferentes ejemplos e implementación de código. También puede consultar los siguientes artículos para obtener más información:
- JTextField en Java (Método, Ejemplos)
- Usos de JDialog en Java
- JScrollPane en Java (Ejemplos)
- ¿Qué son las anotaciones en Java?
- JLabel en Java