SWING - JSpinner 类
简介
JSpinner 类是一个组件,它允许用户使用输入字段从有序序列中选择数字或对象值。
类声明
以下是 javax.swing.JSpinner 类的声明 −
public class JSpinner extends JComponent implements Accessible
类构造函数
序号 | 构造函数 & 描述 |
---|---|
1 |
JSpinner() 使用初始值为 0 且没有最小或最大限制的 Integer SpinnerNumberModel 构造一个微调器。 |
2 |
JSpinner(SpinnerModel model) 使用一对 next/previous 按钮和 SpinnerModel 的编辑器构造一个完整的微调器。 |
类方法
序号 | 方法 & 描述 |
---|---|
1 |
void addChangeListener(ChangeListener listener) 向列表中添加一个侦听器,每次模型发生更改时都会通知该侦听器。 |
2 |
void commitEdit() 将当前编辑的值提交给 SpinnerModel。 |
3 |
protected JComponent createEditor(SpinnerModel model) 构造函数调用此方法来创建显示序列当前值的 JComponent。 |
4 |
protected void fireStateChanged() 向每个 ChangeListener 发送一个源是这个 JSpinner 的 ChangeEvent。 |
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 示例
在 D:/ > SWING > com > tutorialspoint > gui > 中使用您选择的任何编辑器创建以下 Java 程序
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
验证以下输出。