SWING - JSpinner 类

简介

JSpinner 类是一个组件,它允许用户使用输入字段从有序序列中选择数字或对象值。


类声明

以下是 javax.swing.JSpinner 类的声明 −

public class JSpinner
   extends JComponent
      implements Accessible

类构造函数

序号 构造函数 & 描述
1

JSpinner()

使用初始值为 0 且没有最小或最大限制的 Integer SpinnerNumberModel 构造一个微调器。

2

JSpinner(SpinnerModel model)

使用一对 next/previous 按钮和 SpinnerModel 的编辑器构造一个完整的微调器。


类方法

序号 方法 & 描述
1

void addChangeListener(ChangeListener listener)

向列表中添加一个侦听器,每次模型发生更改时都会通知该侦听器。

2

void commitEdit()

将当前编辑的值提交给 SpinnerModel。

3

protected JComponent createEditor(SpinnerModel model)

构造函数调用此方法来创建显示序列当前值的 JComponent。

4

protected void fireStateChanged()

向每个 ChangeListener 发送一个源是这个 JSpinner 的 ChangeEvent。

5

AccessibleContext getAccessibleContext()

获取 JSpinner 的 AccessibleContext。

6

ChangeListener[] getChangeListeners()

返回使用 addChangeListener() 添加到此 JSpinner 的所有 ChangeListener 的数组。

7

JComponent getEditor()

返回显示并可能更改模型值的组件。

8

SpinnerModel getModel()

返回定义此微调器值序列的 SpinnerModel。

9

Object getNextValue()

在 getValue() 返回的对象之后的序列中返回对象。

10

Object getPreviousValue()

在 getValue() 返回的对象之前的序列中返回对象。

11

SpinnerUI getUI()

返回呈现此组件的外观 (L&F) 对象。

12

String getUIClassID()

返回用于构造用于呈现此组件的外观 (L&F) 类的名称的后缀。

13

Object getValue()

返回模型的当前值,通常这个值由编辑器显示。

14

void removeChangeListener(ChangeListener listener)

从此微调器中移除一个 ChangeListener。

15

void setEditor(JComponent editor)

更改显示 SpinnerModel 的当前值的 JComponent。

16

void setModel(SpinnerModel model)

更改表示此微调器值的模型。

17

void setUI(SpinnerUI ui)

设置呈现此组件的外观 (L&F) 对象。

18

void setValue(Object value)

更改模型的当前值,通常该值由编辑器显示。

19

void updateUI()

使用当前外观的值重置 UI 属性。


继承的方法

这个类继承了以下类的方法 −

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JSpinner 示例

D:/ > SWING > com > tutorialspoint > gui > 中使用您选择的任何编辑器创建以下 Java 程序

SwingControlDemo.java

package com.tutorialspoint.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
 
public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showSpinnerDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showSpinnerDemo(){
      headerLabel.setText("Control in action: JSpinner"); 
      SpinnerModel spinnerModel = new SpinnerNumberModel(10, //initial value
         0, //min
         100, //max
         1);//step
      JSpinner spinner = new JSpinner(spinnerModel);
      spinner.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent e) {
            statusLabel.setText("Value : " + ((JSpinner)e.getSource()).getValue());
         }
      });
      controlPanel.add(spinner);
      mainFrame.setVisible(true);  
   } 
}

使用命令提示符编译程序。 转到 D:/ > SWING 并键入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingControlDemo.java

如果没有报错,说明编译成功。 使用以下命令运行程序。

D:\SWING>java com.tutorialspoint.gui.SwingControlDemo

验证以下输出。

Swing JSpinner

❮ SWING 控件