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示例(yiibai.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);
}
}
执行上面示例代码,得到以下结果:
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。