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
廣告