Java学习——61.微调文本行
微调文本行JSpinner是在文本行编辑框右边带有一对向上/下的箭头按钮,它既可以直接输入,也可以使用箭头从中选择一个值。
其类声明如下:
public class JSpinner extendsJ Component implements Accessible
{
public JSpinner()
public JSpinner(SpinnerModel model) //根据model对象指定数据序列
public Object getValue() //获得值
public void setValue(Object value) //设置值
public void addChangeListener(ChangeListener l)
public void removeChangeListener(ChangeListener l)
}
JSpinner中的序列值可由SpinnerNumberModel对象提供,其类声明如下:
class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
{
public SpinnerNumberModel()//构造方法,不带参
public SpinnerNumberModel(int value,int min,int mamx,int step)//构造方法,参数分别表示:默认值、最小值、最大值、步长
public Number getStepSize()//获得步长
public void setStepSize(NumberstepSize)//设置步长
}
JSpinner可实现接口ChangeListener。其声明如下:
public interface ChangeListener extends EventListener
{
public void stateChanged(ChangeEvent ev);
}
简单例题:
本例以可显示0—100,步长为10的微调文本行为例。
例中有一个微调文本行,一个文本行用来显示选择的值。
对微调文本行注册了改变事件监听器,实现了改变事件接口方法。
package learn;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class JSpinnerlearn extends JFrame implements ChangeListener{
private JSpinner spinner;
private JTextField text;
public JSpinnerlearn(){
super("按钮");
this.setBounds(200,200,300,100);
SpinnerNumberModelmodel=newSpinnerNumberModel(20,0,100,10);
spinner=new JSpinner(model);
spinner.addChangeListener(this);
this.getContentPane().add(spinner);
text=new JTextField(30);
this.getContentPane().add(text,"South");
this.setVisible(true);
}
public void stateChanged(ChangeEvent e){
text.setText("您选择的值是:"+spinner.getValue().toString());
}
public static void main(String args[]){
new JSpinnerlearn();
}
}
其运行结果如下:
可使用鼠标单击向上向下箭头或用键盘上的上下键头选择微调文本行的值,其运行结果如下:
其可选择的最大值为100,最小值为0。