您的位置:首页 > 其它

微调控制器模型

2016-05-14 20:53 316 查看
使用微调控制器和微调控制器的标准数据模型,3种模型的功能和方法如下:

SpinnerDateModel模型是JSpinner选择日期的情况下使用的。使用该模型可以为其提供最大日期,最小日期,当前日期以及布进值,此类的两个构造方法如下:

SpinnerDateModel():创键一个没有起点和终点的日期模型,使用当前日期作为初始当前值

SpinnerDateModel(Date value,Comparable start ,Comparable end,int calendarFiled):创建一个具有当前值,起点,终点和步进值的日期模型

步进量的单位一般使用Calendar类的静态常量表示,如下表所示

Calendar 类的静态常量

常量常量意义
Calendar.YEAR步进单位为年
Calendar.MONTH步进单位为月
Calendar.DAY_OF_MONTH Calendar.DATE 步进单位为天
HOUR_OF_DAY(24小时制) Calendar.HOUR(12小时制)步进单位为小时
Calendar.MINUTE步进单位为分钟
Calendar.SECOND步进单位为秒
Calendar.DAY_OF_WEEK用数字(1~7)表示(星期日~星期六)星期几
Calendar.AM_PM (0-上午;1-下午)
上/下午
Calendar.WEEK_OF_YEAR步进单位为周
Calendar.WEEK_OF_MONTH当前月的星期数
Calendar.DAY_OF_WEEK_IN_MONTH当前月中的第几个星期
Calendar.DAY_OF_YEAR当前年的第几天
SpinnerDateModel类中常用的方法:

public Date getDate():获取此序列中的当前元素

public Comparable getEnd() :获取序列中的最后一个日期

public Comparable getStart() :获取序列中的第一个日期

public void setEnd(Comparable end):更改此序列中的最后一个日期

public void setStart(Comparable Start):更改此序列中的第一个日期

public Object getValue():获取此日期序列中的当前元素

public Object setValue(Object value):设置此序列中的当前日期

SpinnerListModel模型使用数组或List列表的元素作为带选择的选项,该模型允许用户对数值进行微调,可以支持整数,浮点数或数字表示的特定数字序列,同样可以指定最大值,最小值,步长等

SpinnerNumberModel模型允许用户对数值进行微调,可以支持整数,浮点数或数字表示的特定数字序列,同样可以指定最大值,最小值,步长等

代码实例:

package ch10;

import java.awt.BorderLayout;
import java.util.*;

import javax.swing.*;
import javax.swing.event.*;

public class SpinnerTest extends JFrame implements ChangeListener
{
JPanel jp = new JPanel();
SpinnerNumberModel snm1 = new SpinnerNumberModel(2008,2008,2020,1);//允许用户对数值进行微调,起始值,最小值,最大值,增值
SpinnerNumberModel snm2 = new SpinnerNumberModel(9,1,31,1);
SpinnerListModel slm = new SpinnerListModel();
ArrayList list = new ArrayList();
JSpinner [] spinnerArray = {new JSpinner(snm1),new JSpinner(slm),new JSpinner(snm2)};//创建微调数组
JLabel jl = new JLabel("您预定的机票的日期为:");
JLabel[] labelArray = {new JLabel("选择年:"),new JLabel("选择月:"),new JLabel("选择日:")};
public SpinnerTest()
{
this.add(jl,BorderLayout.SOUTH);
this.add(jp);
for(int i=1;i<=12;i++)
{
list.add(i+"月");
}
slm.setList(list);
slm.setValue("9月");
for(int i=0;i<spinnerArray.length;i++)
{
labelArray[i].setBounds(30+120*i,60,50,40);
jp.add(labelArray[i]);
spinnerArray[i].setBounds(90+130*i,60,70,40);
spinnerArray[i].addChangeListener(this);
jp.add(spinnerArray[i]);
}
this.setTitle("选择机票日期实例");
this.setBounds(200,200,450,150);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void stateChanged(ChangeEvent a)
{
int year = ((Integer)(spinnerArray[0].getValue())).intValue();
String month = (String)(spinnerArray[1].getValue());
int day = ((Integer)(spinnerArray[2].getValue())).intValue();
jl.setText("您预订机票的日期是:"+year+"月"+month+day+"日");
}
public static void main(String args[])
{
new SpinnerTest();
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: