- Swing 教程
- Swing - 首页
- Swing - 概述
- Swing - 环境
- Swing - 控件
- Swing - 事件处理
- Swing - 事件类
- Swing - 事件监听器
- Swing - 事件适配器
- Swing - 布局
- Swing - 菜单
- Swing - 容器
- Swing 有用资源
- Swing - 快速指南
- Swing - 有用资源
- Swing - 讨论
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
验证以下输出。