Вступ до JSpinner
JSpinner - це компонент, який дозволяє нам вибрати вхід, який може бути об'єктом або числом, з упорядкованої послідовності з поля введення. JSpinner - це клас, і він доступний у пакеті javax.swing. Як і випливає з назви, вона обертає значення у напрямку вгору та вниз, вона не містить випадаючого списку для вибору введення. В основному він містить стрілки вгору і вниз. Коли ми намагаємось натискати стрілки, він показує нам введення відповідно до нашої вимоги.
Конструктори JSpinner
JSpinner містить два конструктори, які працюють наступним чином:
- JSpineer (): Це робить порожній спінер зі значенням за замовчуванням, встановленим нулем. Це свого роду конструктор за замовчуванням, в якому немає аргументів.
- JSpineer (модель SpineerModel): це сприймає SprineerModel як аргумент, який визначає значення його послідовності.
Синтаксис класу Jspineer
public class JSpinner extends JComponent
implements Accessible
Клас JSpinner розширює клас JComponent та реалізує доступний інтерфейс. Тут JComponent є суперкласом для всіх компонентів гойдалки. Будь-який клас, ім'я якого починається з "J", є дочірнім класом для Jcomponent. Jcomponent додатково розширює клас Container. Цей клас надає нам підтримку для додавання компонентів до контейнера. Тепер доступний інтерфейс надає нам різні класи та інтерфейси, які використовуються для визначення контракту між допоміжною технологією та доступним додатком. Він повертає об'єкт AccessibleContext, який перетворюється на надання інформації про інші компоненти.
Методи JSpineer
У JSpineer доступні різні методи:
- SpineerNumberModel (int значення, int max, int min, int step): Цей метод бере чотири аргументи. Початкове значення Spinner буде значенням, встановленим у параметрі 'value'. Тепер ми можемо вказати максимальне значення для шпинеля, тобто параметр "max", також ми можемо визначити мінімальне значення, тобто параметр "min", а останній параметр - "step", який відповідає за збільшення або зменшення значення spineer із заданою різницею .
- SpineerListModel (Список I): Він створює об'єкт моделі spineer з елементом List. Це вимагає лише одного аргументу.
- getPreviousValue (): Цей метод, який ми можемо сказати, діє як геть для цього класу, щоб отримати попереднє значення спінера.
- getnextValue (): Цей метод виступає як геттер, щоб отримати наступне значення шпінеля.
- setValue (Object v): Цей метод діє як метод встановлення для встановлення значення об'єкта, переданого як аргумент.
- getValue (): Це також метод getter, який повертає поточне значення шпінеля.
Приклади Jspineer
Давайте тепер розглянемо деякі приклади.
Приклад №1
У цьому прикладі ми створимо базовий JSpineer для початківців. Ми створимо простий клас java, який розширить JFrame всередині нього, нам потрібно створити об’єкт JFrame, JSpineer обидва ці класи доступні в пакеті javax.swing. Ми можемо встановити межі для спінера, викликаючи метод setBounds (), який бере чотири аргументи. Потім нам потрібно визначити макет для нашого кадру, зателефонувавши setLayout (). Нарешті нам потрібно додати наш компонент JSpinner до об'єкта frame, і нарешті, ми визначимо розмір нашого кадру, зателефонувавши setSize (), який візьме два аргументи.
Нижче ви можете знайти приклад 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();
)
)
Просто запустіть його як додаток Java, з'явиться нове вікно, яке міститиме ваш Jspineer всередині кадру. Нижче знайдіть доданий вихід.
Тепер ми можемо натиснути стрілку, щоб змінити значення прядильника.
Приклад №2
Зараз ми побачимо ще один приклад вибору дати народження від 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());
)
)
Нижче ви можете знайти вихідну програму.
Тут ми визначаємо три спінери на рік, місяць та дату. Отже, тут ми визначимося з трьома спінерами.
Висновок - JSpinner
JSpinner можна використовувати там, де потрібно вводити номер або тип об'єкта в послідовності або в порядку. Що може бути збільшенням чи зменшенням та порядком значення, яке потрібно зберігати. За таким сценарієм ми можемо піти на JSpineer.
Рекомендовані статті
Це керівництво JSpinner. Тут ми обговорюємо конструктори, синтаксис та методи JSpinner разом з різними прикладами та реалізацією коду. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- JTextField у Java (метод, приклади)
- Використання JDialog на Java
- JScrollPane на Java (приклади)
- Що таке анотації на Java?
- JLabel на Java