JSpinner
類是一個組件,它允許用戶使用輸入字段從有序序列中選擇數字或對象值。
類聲明
以下是javax.swing.JSpinner
類的聲明 -
public class JSpinner
extends JComponent
implements Accessible
類構造函數
編號 | 構造函數 | 描述 |
---|---|---|
1 | JSpinner() |
構造一個帶有整數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() |
將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屬性。 |
方法繼承
該類繼承以下類中的方法 -
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
JSpinner示例
使用編輯器創建以下Java程式:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JSpinnerExample {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public JSpinnerExample() {
prepareGUI();
}
public static void main(String[] args) {
JSpinnerExample swingControlDemo = new JSpinnerExample();
swingControlDemo.showSpinnerDemo();
}
private void prepareGUI() {
mainFrame = new JFrame("Java Swing JSpinner示例(xuhuhu.com)");
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("當前設置值 : " + ((JSpinner) e.getSource()).getValue());
}
});
controlPanel.add(spinner);
mainFrame.setVisible(true);
}
}
執行上面示例代碼,得到以下結果: