14.4 JSpinner编辑器
对于每一个JSpinner可用的模型,都有一个附属支持的JSpinner内联类可用。在其中模型允许我们控制对于组件哪些可以选择,微调编辑器允许我们控制如何显示与编辑每一个可选中的值。
14.4.1 JSpinner.DefaultEditor类
JSpinner的setEditor()方法允许我们使得任意的JComponent作为JSpiner的编辑顺。虽然我们一定可以做到,但是更为通常的情况是,我们将会使用一个JSpinner.DefaultEditor的一个子类。他提供了当我们使用基于JFormattedTextField的简单编辑器时所需要的基本功能。他只有一个构造函数:
public JSpinner.DefaultEditor(JSpinner spinner)
JSpinner spinner = new JSpinner();
JComponent editor = JSpinner.DefaultEditor(spinner);
spinner.setEditor(editor);
如表14-6所示,编辑器有两个属性。
不知道我们正在使用的是哪一种模型类型,我们在这个级别上也许会做的就是修改JFormattedTextField的一些显示特点。然而更通常的情况是,我们将会修改模型编辑器的自定义方面。
14.4.2 JSpinner.DateEditor类
DateEditor允许我们使用java.text包的SimpleDateFormat类的各种方面来自定义日期显示。查看SimpleDateFormat的Javadoc可以了解可用的格式模型的完整列表。如果我们不喜欢默认的显示输出,我们可以通过向第二个构造函数传递一个新的格式来修改。
public JSpinner.DateEditor(JSpinner spinner)
SpinnerModel model = new SpinnerDateModel();
JSpinner spinner = new JSpinner(model);
JComponent editor = JSpinner.DateEditor(spinner);
spinner.setEditor(editor);
public JSpinner.DateEditor(JSpinner spinner, String dateFormatPattern)
SpinnerModel model = new SpinnerDateModel();
JSpinner spinner = new JSpinner(model);
JComponent editor = JSpinner.DateEditor(spinner, "MMMM yyyy");
spinner.setEditor(editor);
默认格式为M/d/yy h:mm a,或者对于2004年的圣诞节的某一时刻为12/25/04 12:34 PM。后一个示例将显示December 2004.
表14-7显示了编辑器的两个属性。
14.4.3 JSpinner.ListEditor类
当使用SpinnerListModel时,ListEditor并没有提供特殊的格式化支持。相反,他提供了类型支持。因为模型的所有条目都已知,编辑器尝试匹配用户已经输入的以这些条目中的一个开始的条目。他只有一个构造函数,但是我们绝不应访问这个函数。
public JSpinner.ListEditor(JSpinner spinner)
如表14-8所示,ListEditor只有一个属性。
14.4.4 JSpinner.NumberEditor类
NumberEditor的工作方式类似于DateEditor,允许我们输入字符串来自定义显示格式。与使用SimpleDateFormat不同,NumberEditor与java.text包中的DecimalFormat类相关联。类似于DateEditor,他有两个构造函数:
public JSpinner.NumberEditor(JSpinner spinner)
SpinnerModel model = new SpinnerNumberModel(50, 0, 100, .25);
JSpinner spinner = new JSpinner(model);
JComponent editor = JSpinner.NumberEditor(spinner);
spinner.setEditor(editor);
public JSpinner.NumberEditor(JSpinner spinner, String decimalFormatPattern)
SpinnerModel model = new SpinnerNumberModel(50, 0, 100, .25);
JSpinner spinner = new JSpinner(model);
JComponent editor = JSpinner.NumberEditor(spinner, "#,##0.###");
spinner.setEditor(editor);
第二个构造函数的使用显示了默认格式化字符串。如果数字足够大,则编辑器会尝试显示逗号,如果值是一个完整的数字,则他不会显示十进制。
如表14-9所示,编辑器有两个属性。
14.5 小结
在本章中,我们了解了Swing的JSpinner组件。当我们的选项集合限制为确定的值集合或是值范围,JSpinner允许我们通过在不同的选项之间进行微调来选择值。我们了解了如何提供选项集合:使用SpinnerDateModel与DateEditor选择日期集合,使用SpinnerListModel与ListEditor或是使用SpinnerNumberModel与NumberEditor。
第15章停止探讨由一个值范围内选择并且继承探讨用户在不同的文本组件中输入完整的内容。
分享到:
相关推荐
### Android Spinner+SQLite 三级联动实现详解 #### 一、概览 在Android开发中,经常会遇到需要展示层级数据的情况,比如省份-城市-区县的选择等。这种情况下,使用Spinner(下拉列表框)结合SQLite数据库进行三级...
在这个“三级联动 Spinner”的场景中,我们将讨论如何构建一个具有三个级别的联动选择效果。 1. **Spinner的基础概念** Spinner是一个可以显示单个项,并且当用户点击时会弹出一个列表供用户选择的组件。它通常...
"spinner三级联动"是指在一个应用中,通过三个Spinner控件实现相互关联的选择效果,当用户在第一个Spinner中选择一个省份时,第二个Spinner会自动更新为与该省份相关的城市列表,接着在第二个Spinner选定城市后,第...
在"android spinner 三级联动"这个话题中,我们将探讨如何利用Spinner控件来实现全国省市县(区)的三级联动效果。这种效果常见于地址选择、地区筛选等场景,能够帮助用户快速定位到特定的地理位置。 首先,我们...
总的来说,MaterialSpinner是Android开发中一个优秀的第三方库,它使得我们可以轻松地创建具有Material Design风格并带有动画效果的Spinner,提升了应用的界面质量和用户体验。通过灵活的属性配置和事件监听,开发者...
本示例探讨的是如何实现"spinner三级联动显示",即在一个界面中使用三个Spinner,分别代表省、市、县,当用户在上一级Spinner中选择一个选项时,下一级Spinner会自动更新其显示的选项,以反映与所选上级选项相对应的...
在Androidspinner省市区三级连动源码中,我们可以看到以下关键知识点: 1. **Spinner控件**:Spinner是Android提供的一个下拉选择控件,它允许用户从一组预定义的选项中选择一个。通常,spinner可以通过Adapter与...
在Android开发中,Spinner是一个常用的组件,用于提供一个下拉选择菜单,用户可以在其中选择一个选项。本示例关注的是如何创建一个具有默认值并能自定义显示与下拉效果的Spinner。以下将详细介绍实现这一功能的关键...
在Android开发中,Spinner是一个常用的UI组件,它用于在下拉列表中展示多个选项供用户选择。当需要自定义Spinner的字体大小时,开发者需要对Spinner的样式进行一些定制。以下是一些关于如何自定义Android Spinner...
在三级联动中,每个级别(省、市、区)通常都会使用一个Spinner来展示和选择。为了实现这种联动效果,开发者需要编写逻辑来处理不同Spinner之间的交互。 具体实现方法可能包括以下步骤: 1. **数据准备**:首先,...
在本示例中,"Spinner切换图图图片"表明我们将探讨如何使用Spinner来实现图片的切换,这可能涉及到三级联动,即一个Spinner的选择会触发其他Spinner的更新,进而展示相应的图片信息。 在Android开发中,Spinner的...
对于android项目开发来说,常常会用到Spinner实现下拉框的效果。而对于Spinner加载适配器的方法有多种: 1.直接加载android自带的ArrayAdapter,SimpleAdapter; 2.自定义继承BaseAdapter的适配器。 对于适配器加载...
Spinner是Android开发中常见的一种控件,它在用户界面中常用于实现下拉选择功能,类似于iOS中的PickerView。在Android应用中,Spinner通常用于显示一组可选的条目,用户可以通过点击或触摸来展开选项列表,然后进行...
在Android开发中,Spinner是一个非常常用的组件,它用于在下拉菜单中展示一系列选项供用户选择。Spinner在很多场合下可以替代多个按钮或开关,提供更简洁的操作界面。本篇文章将详细讲解如何在Android中设置Spinner...
在Android开发中,Spinner是一个非常常用的控件,它允许用户从一组预定义的选项中进行选择。默认情况下,Spinner的样式可能无法满足所有设计需求,因此开发者常常需要对其进行自定义,以实现更个性化的视觉效果。...
Spinner是Android系统中的一种下拉选择控件,它通常用于在有限的选项中进行选择,类似于iOS中的PickerView。在Android开发中,Spinner是一个非常实用的组件,可以在界面上提供简洁的交互方式,用户可以点击后展开...
此外,也可以考虑使用第三方库如`Material Design Components`中的`MaterialSpinner`,它提供了更多现成的样式和功能。 #### 六、总结 通过上述步骤,我们可以轻松地实现一个简单而美观的自定义`Spinner`。这不仅...
在Android开发中,Spinner是一个非常常用的控件,它允许用户从一组预定义的选项中进行选择,类似于下拉菜单。Spinner控件不仅简洁,而且能够有效地节省屏幕空间,尤其适用于移动设备。本示例源码将详细介绍如何创建...
**步骤三:关联Adapter** 最后,将Adapter设置到Spinner上: ```java Spinner spinner = findViewById(R.id.spinner); spinner.setAdapter(adapter); ``` **步骤四:监听事件** 我们可能需要监听Spinner的选择事件...