位置:首页 > Java技术 > Swing > Swing JSpinner

Swing JSpinner

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

类声明

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

public class JSpinner
   extends JComponent
      implements Accessible

类构造函数

S.N. 构造函数 & 描述
1 JSpinner() 
Constructs a spinner with an Integer SpinnerNumberModel with initial value 0 and no minimum or maximum limits.
2 JSpinner(SpinnerModel model) 
Constructs a complete spinner with pair of next/previous buttons and an editor for the SpinnerModel.

类方法

S.N. 方法 & 描述
1 void addChangeListener(ChangeListener listener) 
Adds a listener to the list that is notified each time a change to the model occurs.
2 void commitEdit() 
Commits the currently edited value to the SpinnerModel.
3 protected JComponent createEditor(SpinnerModel model) 
This method is called by the constructors to create the JComponent that displays the current value of the sequence.
4 protected void fireStateChanged() 
Sends a ChangeEvent, whose source is this JSpinner, to each ChangeListener.
5 AccessibleContext getAccessibleContext() 
Gets the AccessibleContext for the JSpinner
6 ChangeListener[] getChangeListeners() 
Returns an array of all the ChangeListeners added to this JSpinner with addChangeListener().
7 JComponent getEditor() 
Returns the component that displays and potentially changes the model's value.
8 SpinnerModel getModel() 
Returns the SpinnerModel that defines this spinners sequence of values.
9 Object getNextValue() 
Returns the object in the sequence that comes after the object returned by getValue().
10 Object getPreviousValue() 
Returns the object in the sequence that comes before the object returned by getValue().
11 SpinnerUI getUI() 
Returns the look and feel (L&F) object that renders this component.
12 String getUIClassID() 
Returns the suffix used to construct the name of the look and feel (L&F) class used to render this component.
13 Object getValue() 
Returns the current value of the model, typically this value is displayed by the editor.
14 void removeChangeListener(ChangeListener listener) 
Removes a ChangeListener from this spinner.
15 void setEditor(JComponent editor) 
Changes the JComponent that displays the current value of the SpinnerModel.
16 void setModel(SpinnerModel model) 
Changes the model that represents the value of this spinner.
17 void setUI(SpinnerUI ui) 
Sets the look and feel (L&F) object that renders this component.
18 void setValue(Object value) 
Changes current value of the model, typically this value is displayed by the editor.
19 void updateUI() 
Resets the UI property with the value from the current look and feel.

方法继承

这个类从以下类继承的方法:

  • javax.swing.JComponent

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

JSpinner 例子

选择使用任何编辑器创建以下java程序在 D:/ > SWING > com > yiibai > gui >

SwingControlDemo.java
package com.yiibai.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 comyiibaiguiSwingControlDemo.java

如果没有错误出现,这意味着编译成功。使用下面的命令来运行程序。

D:SWING>java com.yiibai.gui.SwingControlDemo

验证下面的输出

Swing JSpinner