`
mylxiaoyi
  • 浏览: 335722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spinner Model Controls(三)

 
阅读更多

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章停止探讨由一个值范围内选择并且继承探讨用户在不同的文本组件中输入完整的内容。


分享到:
评论

相关推荐

    Eclipse_Swt_Jface_核心应用_部分19

    9.6.3 微调按钮(Spinner) 168 9.7 进度条(ProgressBar) 169 9.8 对话框 170 9.8.1 消息提示框(MessageBox) 171 9.8.2 文件目录对话框(DirectoryDialog) 172 9.8.3 文件对话框(FileDialog) 173 ...

    基于MATLAB的电动汽车削峰填谷多目标充放电优化调度策略研究

    内容概要:本文探讨了利用电动汽车参与电网削峰填谷的多目标优化调度策略。通过MATLAB平台,使用YALMIP工具箱和CPLEX求解器构建了一个精确的数学模型,旨在同时降低用户的综合成本、减少电网峰谷差并稳定负荷波动。文中详细介绍了目标函数的设计思路,包括各子目标的权重分配方法及其背后的考量因素;电池退化成本的计算方式;关键约束条件如SOC连续性和峰谷限制的具体实现;以及最终优化结果带来的显著效益。此外,还分享了一些实用技巧,比如如何选择合理的初始值以提高求解效率。 适合人群:电力系统研究人员、智能电网工程师、从事电动汽车相关工作的技术人员。 使用场景及目标:适用于需要解决电网负荷不均衡问题的研究机构或企业,特别是在推广新能源汽车过程中面临较大挑战的城市和地区。本研究的目标在于提供一种有效的解决方案,既能够保障车主利益最大化,又可以促进能源的有效利用和社会可持续发展。 其他说明:文中提供的完整代码和详细的说明文档有助于读者快速理解和应用该优化策略。未来还可以进一步探索加入更多变量(如天气预报、光伏发电量)的可能性,使模型更加完善。

    实训商业源码-游戏扫码登录多功能工具箱集合微信小程序源码-毕业设计.zip

    实训商业源码-游戏扫码登录多功能工具箱集合微信小程序源码-毕业设计.zip

    COMSOL激光烧蚀技术:脉冲激光打孔包与动网格固体传热模块的应用解析

    内容概要:本文详细介绍了COMSOL激光烧蚀脉冲激光打孔包及其在工业生产中的应用。首先阐述了激光打孔技术的优势,随后重点讲解了两个核心模块——动网格模块和固体传热模块的功能和作用。动网格模块用于模拟激光束在材料中的传播路径、烧蚀区域的形成及材料表面的热交换过程;固体传热模块则专注于模拟材料在激光烧蚀过程中的热传导特性,帮助优化工艺参数并提高加工效率。文中还列举了具体的案例分析,展示了该技术在金属材料加工中的广泛应用。最后讨论了技术的优势与面临的挑战,并对未来的发展进行了展望。 适合人群:从事材料加工、激光技术研究的专业人士,以及希望深入了解COMSOL软件应用的研究人员和工程师。 使用场景及目标:适用于需要进行高精度、高效率金属材料加工的企业和个人。通过学习和应用COMSOL激光烧蚀脉冲激光打孔包,可以优化工艺流程,提升产品质量和生产效率。 其他说明:尽管COMSOL提供了强大的建模和分析功能,但在实际操作中还需注意模型复杂度的控制和仿真结果的准确性验证等问题。

    yudao ruoyi-pro 开源项目 crm 客户管理模块初始化sql

    yudao ruoyi-pro 的 CRM 客户管理模块初始化 SQL 包含客户全生命周期管理核心表结构及基础数据,支持客户信息、商机、联系人及合同管理。资源涵盖客户表(crm_customer)、商机表(crm_business)、联系人表(crm_contact)、合同表(crm_contract),集成客户分群、跟进记录、公海池回收规则、合同审批流程等数据模型。内置示例客户数据、测试商机线索及合同模板,通过 crm_ 前缀表实现模块解耦。适配 Ruoyi 权限体系,提供角色-客户权限绑定、菜单路由初始化,支持客户分配流转、跟进时间线、销售漏斗分析及业绩统计功能,适用于企业销售管理、客户资源维护及跨部门协作场景快速搭建。

    cJSON.c开源文件

    cJSON.c开源文件

    【计算机网络】学习资料、题目合集与实验项目整合:涵盖网络协议分析、工具使用及综合设计题解析整理了计算机网络

    内容概要:本文档为计算机网络学习提供全面的资源整合指南,涵盖学习资料推荐、题目合集与考点解析、实验项目指导以及工具使用教程。学习资料包括核心教材与课件、题库与解析、慕课资源,重点讲解网络分层模型、IP分段与重组、路由算法等知识点。题目合集部分针对选择题和综合设计题提供了典型题目及其答案参考来源,帮助学生掌握网络拓扑结构、IP地址划分、传输层协议等内容。实验项目指导则详细介绍了验证性实验和设计性实验的操作步骤,如IP地址配置与连通性测试、ARP协议解析、TCP连接分析等。工具使用教程包括Wireshark抓包过滤器语法和高级功能,以及Cisco Packet Tracer的基础操作和进阶应用。最后,文档还给出了从入门到深化阶段的学习路径建议。; 适合人群:计算机网络初学者、有一定基础的学生或技术人员。; 使用场景及目标:①作为计算机网络课程的辅助学习材料;②用于备考相关认证考试;③为实际网络工程设计和故障排查提供实践指导。; 阅读建议:建议按学习路径逐步深入,先掌握基础知识和基本命令,再进行实验操作,最后利用工具深入分析协议和网络行为。

    012204124_王韵淇_仿真报告.docx

    012204124_王韵淇_仿真报告.docx

    三相PWM逆变器电压电流双闭环控制的Matlab/Simulink仿真及其抗扰性测试

    内容概要:本文详细介绍了基于Matlab/Simulink 2021b的三相PWM逆变器电压电流双闭环控制系统的设计与仿真。主要内容涵盖主电路设计(采用IGBT)、坐标变换(Clarke变换和Park变换)、电压电流双环PI控制器以及SVPWM控制。特别关注了在0.2秒时突加负载情况下系统的抗扰性能,展示了系统在突加载情况下的快速恢复能力和稳定性。文中还分享了一些调试经验和优化技巧,如在Park变换后加入低通滤波器以减少高频噪声干扰,调整仿真步长以提高仿真的精度和效率。 适合人群:电力电子工程师、自动化控制领域的研究人员和技术人员,尤其是对逆变器控制和仿真感兴趣的读者。 使用场景及目标:适用于需要深入了解三相PWM逆变器控制原理和仿真实现的研究人员和技术人员。目标是掌握电压电流双闭环控制的具体实现方法,了解SVPWM的工作机制,并能进行有效的抗扰性测试。 其他说明:本文不仅提供了详细的理论背景,还包含了具体的实现步骤和调试经验,有助于读者更好地理解和应用相关技术。

    电网技术前沿:基于IEEE73节点的三区输电网暂态仿真与调频调压研究

    内容概要:本文详细介绍了利用IEEE73节点三区输电网进行暂态仿真和调频调压的研究方法。首先,通过Python加载IEEE73节点的数据并解析关键节点信息,特别是第15号节点作为区域间联络枢纽的作用。接着,通过PSCAD设置故障条件,如三相短路故障,来模拟暂态过程,并分析发电机转速波动情况。对于调压部分,采用Python进行灵敏度分析,识别对系统电压最敏感的机组。最后,使用MATLAB计算系统的动态响应,探讨不同区域之间的耦合效应及其对频率恢复的影响。文中还强调了模型校验的重要性以及参数设置的精确性。 适合人群:电力系统研究人员、电网工程师、高校相关专业师生。 使用场景及目标:适用于需要深入了解输电网暂态特性和调频调压机制的研究人员和技术人员。目标是掌握如何通过仿真工具分析复杂电网行为,优化电网运行性能。 其他说明:建议初学者从简单的单机无穷大系统入手,逐步深入到完整的三区输电网模型,确保理解和应用的准确性。

    OneView - RAW和YUV看图工具,支持Tiny ISP处理和格式转换

    OneView - RAW和YUV看图工具,支持Tiny ISP处理和格式转换

    【智能汽车竞赛】基于飞思卡尔MK60DN512VLQ10的智能车系统设计:特技动作实现与硬件集成

    内容概要:文章详细介绍了渤海大学首胜队参加第九届“飞思卡尔”杯全国大学生智能汽车竞赛的情况。该竞赛涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科,旨在推动汽车智能化技术的发展。文中首先阐述了智能汽车的研究背景及其重要性,强调智能化是未来汽车发展的趋势。接着介绍了基于MK60DN512VLQ10微处理器的智能车设计方案,包括机械设计(悬挂、轮胎、舵机等)、电路设计(电源管理、电机驱动、红外检测、摄像头、编码器等)和动作设计(腾空飞跃、漂移过弯、走双边桥、过转盘、侧边行车、漂移入位)。文章还展示了系统框图,详细列出了各模块的功能和连接方式。最后总结了团队在整个项目中的收获,包括遇到的问题、解决方案以及团队协作的经验。 适合人群:对智能汽车竞赛感兴趣的学生和技术爱好者,尤其是参与类似竞赛或研究项目的人员。 使用场景及目标:①帮助读者了解智能汽车竞赛的具体流程和技术要求;②为准备参加此类竞赛的团队提供参考案例和技术支持;③展示如何将多学科知识融合应用于实际工程项目中。 其他说明:本文不仅提供了详细的硬件设计和软件编程指导,还分享了团队在比赛过程中积累的经验教训,强调了团队合作的重要性。此外,文章附有详细的参考文献列表,方便读者进一步查阅相关资料。

    基于SpringBoot+Vue前后端分离的Java快速开发框架

    基于SpringBoot+Vue前后端分离的Java快速开发框架。移动端采用Vue、Uniapp、Uview。PC端采用Vue、Element UI。后端采用Spring Boot、Mybatis、Spring Security、Redis & Jwt。推荐使用Camunda实现工作流。推荐使用Websocket实现即时通讯。推荐使用OSS、COS实现对象存储。推荐使用Luckysheet实现Excel拖拽赋值的Web数据录入。推荐使用Vxe-table实现单行编辑,即时保存效果。推荐使用ECharts,UCharts实现数据可视化图表。推荐使用DataV展示可视化大屏数据。推荐使用IReport实现复杂报表导出Pdf、Execl,Word。推荐使用UReport实现自定义报表设计。推荐使用Hiprint实现自定义报表打印设计。推荐使用kkFileView实现在线预览,支持doc,docx,Excel,pdf,txt,zip,rar,图片等。使用OAuth2实现三方应用授权。支持多种登录方式(微信扫码登录,微信授权登录,验证码登录,密码登录)。支持微信、支付宝等第三方支付。支持加载动态权限菜单,控制菜单权限,按钮权限,数据权限。高效率开发,使用代码生成器可以一键生成前后端代码。

    实训商业源码-青苹果-毕业设计.zip

    实训商业源码-青苹果-毕业设计.zip

    实训商业源码-漫画小程序-毕业设计.zip

    实训商业源码-漫画小程序-毕业设计.zip

    直流无刷电机控制器硬件方案:智能调速、多重保护与简易调试

    内容概要:本文详细介绍了全新的直流无刷电机控制器硬件设计方案,涵盖智能调速、正反转控制、多级保护(如限流、启动力矩设置、电压保护、电流保护、温度保护)以及简易调试等功能。硬件设计采用模块化的H桥驱动和信号调理,选用耐用的MOSFET IRFS7530和DRV8301驱动芯片,确保高精度控制和稳定性。调速算法采用分段式PID,启动阶段使用模糊控制,高速阶段则使用经典PID,确保启动平稳和运行稳定。保护机制方面,采用了快速响应的电流采样和温度预测算法,能够在极端情况下迅速切断输出,保障安全。此外,提供了详细的调试手册,帮助用户轻松完成调试。 适用人群:适用于从事电机控制系统设计的技术人员、电子工程师及相关领域的研究人员。 使用场景及目标:本方案旨在提供一种高性能、易调试的直流无刷电机控制器解决方案,适用于需要精确控制和多重保护的应用场景,如工业自动化设备、机器人等领域。 其他说明:调试手册配有生动的RAP口诀,便于初学者快速掌握调试技巧,使整个调试过程更加直观和高效。

    实训商业源码-可乐个人发卡源码2.0v修复版-毕业设计.zip

    实训商业源码-可乐个人发卡源码2.0v修复版-毕业设计.zip

    yudao ruoyi-vue-pro 开源项目 mall 商城模块初始化sql

    yudao ruoyi-vue-pro 商城模块初始化 SQL 包含电商核心业务表结构及基础数据,支持商品管理、订单交易、营销活动等功能。资源涵盖商品表(mall_product)、分类表(mall_category)、订单表(mall_order)、购物车表(mall_cart)、优惠券表(mall_coupon),集成SKU属性、库存管理、促销规则、物流跟踪等数据模型。内置初始商品分类、示例商品数据、测试订单及满减优惠活动配置,通过 mall_ 前缀表实现模块解耦。适配 Ruoyi 权限体系,提供商户-商品关联、角色菜单初始化,支持多规格商品发布、订单状态流转、秒杀活动配置及会员积分体系,适用于 B2C/B2B 电商、新零售等场景快速搭建。

Global site tag (gtag.js) - Google Analytics