java jspinner控件_Java Swing JSpinner

本文介绍了Java Swing中的JSpinner组件,它结合了JFormattedTextField和JComboBox的功能,支持数字、日期和其他对象的有序列表。JSpinner的模型包括SpinnerNumberModel、SpinnerDateModel和SpinnerListModel,可以设置不同的步长和格式。文中通过示例展示了如何创建并配置JSpinner,包括数字列表、日期列表和自定义对象列表,并调整编辑器显示格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java Swing教程 - Java Swing JSpinner

JSpinner组件组合来自JFormattedTextField和可编辑的JComboBox的函数。

JSpinner可以有一个选择列表,同时,我们也可以应用一个格式到显示的值。

它从选择列表中一次只显示一个值,它允许我们输入一个新值。

JSpinner中的选择列表必须是有序列表。

JSpinner根据其型号提供纺纱能力。

我们必须在JSpinner的构造函数中提供一个模型,除非我们只需要一个带有整数列表的JSpinner。

JSpinner支持三种有序的选择列表。

a list of numbers

a list of dates

a list of any other objects

它提供了三个类来创建三种不同类型的列表的模型:

SpinnerNumberModel

SpinnerDateModel

SpinnerListModel

Spinner模型是SpinnerModel接口的一个实例。它定义了getValue(),setValue(),getPreviousValue()和getNextValue()方法来处理JSpinner中的值。

SpinnerNumberModel类可以旋转一个有序的数字列表。我们需要在列表中指定最小值,最大值和当前值。我们还可以指定当我们使用JSpinner的向上/向下按钮时用于遍历数字列表的步长值。

以下代码创建一个JSpinner,其中包含1到10之间的数字列表。它让我们以1为步长旋转列表。字段的当前值设置为5。

int minValue = 1;

int maxValue = 10;

int currentValue = 5;

int steps = 1;

SpinnerNumberModel nModel = new SpinnerNumberModel(currentValue, minValue, maxValue, steps);

JSpinner numberSpinner = new JSpinner(nModel);

SpinnerDateModel类提供了一个模型来旋转日期的有序列表。

我们需要指定开始日期,结束日期,当前值和步骤。

以下代码创建一个JSpinner,用于旋转2000年1月1日至2050年12月31日的日期列表,每次一天。

将当前系统日期设置为字段的当前值。

Calendar calendar = Calendar.getInstance();

calendar.set(2000, 1, 1);

Date minValue = calendar.getTime();

calendar.set(2050, 12, 31);

Date maxValue = calendar.getTime();

Date currentValue = new Date();

int steps = Calendar.DAY_OF_MONTH; // Must be a Calendar field

SpinnerDateModel dModel = new SpinnerDateModel(currentValue, minValue, maxValue, steps);

dateSpinner = new JSpinner(dModel);

JSpinner中的日期值将以默认语言环境格式显示。

SpinnerListModel类允许我们旋转任何对象的有序列表。

SpinnerListModel类允许我们旋转任何对象的有序列表。...

对象的toString()方法的String值显示在JSpinner中。

以下代码段创建一个JSpinner,显示四个季节的列表:

String[] seasons = new String[] {"Spring", "Summer", "Fall", "Winter"};

SpinnerListModel sModel = new SpinnerListModel(seasons);

listSpinner = new JSpinner(sModel);

JSpinner使用编辑器对象显示当前值。 它有以下三个静态内部类来显示三种不同类型的有序列表:

JSpinner.NumberEditor

JSpinner.DateEditor

JSpinner.ListEditor

要以特定格式显示数字或日期,我们需要为JSpinner设置一个新的编辑器。

数字和日期编辑器的编辑器类允许我们指定格式。

以下代码将数字格式设置为“00"。

JSpinner.NumberEditor Editor = new JSpinner.NumberEditor(numberSpinner,“00");numberSpinner.set Editor(Editor);

以下代码将日期格式设置为mm / dd / yyyy

JSpinner.DateEditor dEditor = new JSpinner.DateEditor(dateSpinner, "mm/dd/yyyy");

dateSpinner.setEditor(dEditor);

我们可以使用JSpinner或SpinnerModel定义的getValue()方法来获取JSpinner中的当前值作为对象。

SpinnerNumberModel和SpinnerDateModel定义了getNumber()和getDate()方法,分别返回Number和Date对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值