Swing - JSpinner 类



介绍

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

类声明

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

public class JSpinner
   extends JComponent
      implements Accessible

类构造函数

序号 构造函数 & 描述
1

JSpinner()

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

2

JSpinner(SpinnerModel model)

使用一对“下一步/上一步”按钮和 SpinnerModel 的编辑器构造一个完整的微调器。

类方法

序号 方法 & 描述
1

void addChangeListener(ChangeListener listener)

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

2

void commitEdit()

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

3

protected JComponent createEditor(SpinnerModel model)

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

4

protected void fireStateChanged()

向每个 ChangeListener 发送一个 ChangeEvent,该事件的源是此 JSpinner。

5

AccessibleContext getAccessibleContext()

获取 JSpinner 的 AccessibleContext。

6

ChangeListener[] getChangeListeners()

返回添加到此 JSpinner 中的所有 ChangeListener 的数组,这些监听器是使用 addChangeListener() 添加的。

7

JComponent getEditor()

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

8

SpinnerModel getModel()

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

9

Object getNextValue()

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

10

Object getPreviousValue()

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

11

SpinnerUI getUI()

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

12

String getUIClassID()

返回用于构造呈现此组件的 Look and Feel (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 示例

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

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_controls.htm
广告