JSpinner
介绍 (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
验证以下输出。