JSpinner

优质
小牛编辑
132浏览
2023-12-01

介绍 (Introduction)

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

Class 声明 (Class Declaration)

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

public class JSpinner
   extends JComponent
      implements Accessible

类构造函数 (Class Constructors)

Sr.No.构造函数和描述
1

JSpinner()

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

2

JSpinner(SpinnerModel model)

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

Class Methods

Sr.No.方法和描述
1

void addChangeListener(ChangeListener listener)

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

2

void commitEdit()

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

3

protected JComponent createEditor(SpinnerModel model)

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

4

protected void fireStateChanged()

将ChangeEvent(其源是此JSpinner)发送到每个ChangeListener。

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属性。

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

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

JSpinner示例

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

SwingControlDemo.java

package cn.xnip.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\xnip\gui\SwingControlDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java cn.xnip.gui.SwingControlDemo

验证以下输出。

Swing JSpinner