Introdução ao JSpinner
JSpinner é um componente que nos permite selecionar uma entrada que pode ser um objeto ou um valor numérico de uma sequência ordenada de um campo de entrada. JSpinner é uma classe e está disponível no pacote javax.swing. Como o nome sugere, ele gera seu valor na direção para cima e para baixo, e não contém uma lista suspensa para selecionar uma entrada. Basicamente, contém setas para cima e para baixo. Quando tentamos pressionar as setas, ele mostra a entrada de acordo com nossa exigência.
Construtores de JSpinner
JSpinner contém dois construtores que funcionam da seguinte maneira:
- JSpineer (): cria um controle giratório vazio com o valor padrão definido como zero. É um tipo de construtor padrão sem nenhum argumento.
- JSpineer (modelo SpineerModel): usa SprineerModel como um argumento que decide seu valor de sequência.
Sintaxe da classe Jspineer
public class JSpinner extends JComponent
implements Accessible
A classe JSpinner estende a classe JComponent e implementa a interface acessível. Aqui, o JComponent é a superclasse de todos os componentes do balanço. Qualquer classe cujo nome comece com 'J' é a classe filha do Jcomponent. Jcomponent estende ainda mais a classe Container. Esta classe fornece o suporte para adicionar componentes ao contêiner. Agora, a interface acessível nos fornece várias classes e interfaces que são usadas para definir um contrato entre a tecnologia assistida e o aplicativo acessível. Retorna o objeto do objeto AccessibleContext que se vira para fornecer informações sobre outros componentes.
Métodos JSpineer
Diferentes métodos disponíveis no JSpineer:
- SpineerNumberModel (valor int, int max, int min, int step): Este método utiliza quatro argumentos. O valor inicial do spinner seria um valor definido no parâmetro 'value'. Agora podemos especificar um valor máximo para um spineer, ou seja, parâmetro 'max', também podemos definir um valor mínimo, ou seja, 'min' e o último parâmetro é 'step', responsável por aumentar ou diminuir o valor do spineer com uma diferença especificada .
- SpineerListModel (Lista I): Cria um objeto de modelo de spineer com o elemento List. Requer apenas um argumento a ser passado.
- getPreviousValue (): podemos dizer que este método atua como um getter para essa classe para obter o valor anterior do spinner.
- getnextValue (): esse método atua como um getter para obter o próximo valor de spineer.
- setValue (Object v): este método atua como um método setter para definir o valor de um objeto passado como argumento.
- getValue (): este também é um método getter que retorna o valor atual do spineer.
Exemplos de Jspineer
Vamos agora dar uma olhada em alguns dos exemplos.
Exemplo 1
Neste exemplo, criaremos um JSpineer básico para iniciantes. Vamos criar uma classe java simples que estenderá o JFrame dentro dele. Precisamos criar o objeto JFrame, JSpineer. Essas duas classes estão disponíveis no pacote javax.swing. Podemos definir os limites para o girador chamando o método setBounds (), que recebe quatro argumentos. Então, precisamos definir o layout do nosso quadro chamando setLayout (). Por fim, precisamos adicionar nosso componente JSpinner ao objeto de quadro e, por fim, definiremos o tamanho de nosso quadro chamando setSize (), que receberá dois argumentos.
Abaixo você pode encontrar o exemplo 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();
)
)
Basta executá-lo como aplicativo java. Uma nova janela será exibida, contendo o seu Jspineer dentro do quadro. Abaixo encontre a saída anexada.
Agora podemos pressionar a seta para alterar o valor do botão giratório.
Exemplo 2
Agora veremos mais um exemplo para escolher a data de nascimento do 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());
)
)
Abaixo, você pode encontrar a saída do programa acima.
Aqui estamos definindo três spinners para o ano, mês e data. Então, vamos definir três spinners aqui.
Conclusão - JSpinner
O JSpinner pode ser usado onde a entrada de número ou tipo de objeto é necessária em uma sequência ou em ordem. Que pode ser incremento ou decremento e a ordem do valor deve persistir. Nesse cenário, podemos usar o JSpineer.
Artigos recomendados
Este é um guia para o JSpinner. Aqui discutimos construtores, sintaxe e métodos do JSpinner, juntamente com diferentes exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais -
- JTextField em Java (método, exemplos)
- Usos do JDialog em Java
- JScrollPane em Java (exemplos)
- O que são anotações em Java?
- JLabel em Java