没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-01-06 11:33:13.607|阅读 13 次
概述:可访问性在软件开发中至关重要,许多旧版 Java 桌面应用程序都存在可访问性问题。本文介绍了如何使用JxBrowser的Web 技术帮助提高 Java 桌面应用程序的可访问性。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
JxBrowser是一个跨平台的 JVM 库,它允许您将基于 Chromium 的 Browser 控件集成到 Compose、Swing、JavaFX、SWT 应用程序中,并使用 Chromium 的数百种功能。
可访问性在软件开发中至关重要。在银行、医疗保健和教育等领域,可访问性至关重要,因为可用性会影响到广泛而多样的用户。政府和其他组织也要求软件能够方便残障人士使用。
许多旧版 Java 桌面应用程序都存在可访问性问题。屏幕阅读器支持不佳、键盘导航受限以及缺乏高对比度模式,导致各类人群无法使用它们。
现代浏览器和网络库在设计时都考虑到了可访问性。除了内置的可访问性功能覆盖了部分内容之外,浏览器扩展还覆盖了其余内容。
本文介绍了如何使用 JxBrowser的Web 技术帮助提高 Java 桌面应用程序的可访问性。
Java 应用程序中的可访问性
Java UI 工具包不会忽视可访问性问题。Swing 通过该javax.accessibility包提供了不错的支持。JavaFX Accessibility API 提供了良好的自定义选项以及与特定于平台的工具的兼容性。SWT 使用本机控件,提供内置的可访问性功能。
然而,将这些 API 集成到遗留代码中通常非常复杂且耗费人力。许多 Java 应用是在可访问性成为优先事项之前构建的。随着时间的推移,一些可访问性问题会深深扎根于用户体验中,使得修复起来既困难又昂贵。
更新 UI 以满足现代可访问性标准可能很棘手。例如,如果您想增加 Swing 中聚焦文本字段的对比度,则需要投入一些精力:
var textField = new JTextField(); var defaultBorder = textField.getBorder(); var focusBorder = new CompoundBorder( createLineBorder(Color.BLUE, 3), new EmptyBorder(2, 2, 2, 2) ); textField.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { textField.setBorder(focusBorder); } @Override public void focusLost(FocusEvent e) { textField.setBorder(defaultBorder); } });
将此乘以应用程序中的每个组件,可访问性很快就会成为一项艰巨的任务。如今,由于设计过时、预算有限以及破坏现有功能的风险,这项任务变得更加具有挑战性。
网络无障碍
可访问性是网页设计的关键部分。WCAG 概述了 可访问网站的四项原则:它们必须可感知、可操作、可理解和强大。现代网络框架可以立即处理这些要求中的许多要求,从而减少了额外编码的需要。
浏览器扩展也发挥着重要作用。它们弥补了可访问性方面的差距,只需用户付出很少的努力。常见示例包括:
使用 JxBrowser 实现无障碍
借助 Web 技术的优势,您可以轻松让您的 Java 应用易于访问。嵌入式浏览器允许您将 Java 代码与 Web 界面相结合,以创建混合应用程序。
在本文中,我们将探讨 JxBrowser,这是一种将基于 Chromium 的浏览器嵌入 Swing、JavaFX、SWT 或 Compose 桌面应用程序的流行解决方案。
以下是将 JxBrowser 添加到 Gradle 项目的方法:
plugins { id("com.teamdev.jxbrowser") version "1.2.1" } jxbrowser { version = "8.2.1" } dependencies { // Add a dependency to JxBrowser integration with Swing. // Also provided: jxbrowser.swt, jxbrowser.javafx, jxbrowser.compose. implementation(jxbrowser.swing) // Add a dependency to Chromium binaries for the current platform. implementation(jxbrowser.currentPlatform) }
在 JxBrowser 中,您可以从 CRX 文件或 Chrome 网上应用店安装 Chrome 扩展程序。
下面演示了如何使用 CRX 文件在一行代码中安装高对比度扩展:
var extension = profile.extensions().install(Paths.get("High Contrast.crx"));
在许多情况下,安装扩展程序就足以在网页上看到结果。但是,某些扩展程序通过弹出窗口提供可配置的功能。这是您在单击 Chrome 工具栏中的扩展程序图标时看到的对话框。JxBrowser 允许您从代码中单击扩展程序:
extension.action(browser).ifPresent(ExtensionAction::click);
随后,扩展弹出窗口将在新窗口中打开:
高对比度扩展弹出窗口
如果我们不想在应用启动时显示此弹出窗口,该怎么办?例如,我们可能希望在安装后自动打开高对比度模式。
为了实现这一点,我们可以注册OpenExtensionActionPopupCallback以替换默认行为。在此回调中,我们可以访问弹出窗口及其 HTML 文档。从那里,我们只需使用 JavaScript 单击右侧单选按钮来选择所需的模式即可。
代码如下:
var javaScript = """ const selector = 'span[i18n-content="highcontrast_increased_contrast"]'; document.querySelector(selector) ?.closest('label') ?.querySelector('input[type="radio"]') ?.click(); """; browser.set(OpenExtensionActionPopupCallback.class, (params, tell) -> { // Get the extension action popup. var popupBrowser = params.popupBrowser(); // Wait until the document is fully loaded. popupBrowser.navigation().on(FrameDocumentLoadFinished.class, event -> { var frame = event.frame(); // Click on the required button via JavaScript. frame.executeJavaScript(javaScript); }); tell.proceed(); });
当应用程序启动时,高对比度模式将自动启用。
常规 Swing 应用程序与带有 JxBrowser 的应用程序之间的高对比度
结论
在本文中,我们讨论了如何通过迁移到 Web 以最少的努力实现良好的可访问性。借助 JxBrowser,您可以使用 Chrome 扩展程序快速轻松地实现此目的。
如果您有产品试用下载、价格咨询、优惠获取,或其他任何问题,请联系。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
文章转载自:慧都网无论是零售、物流还是医疗保健,旋转条形码图像的功能都能增强不同应用的灵活性和适应性。使用Aspose.BarCode for Java,您可以轻松旋转条形码图像,确保它们无缝融入应用程序的设计和布局。
借助Aspose.Slides for Java,开发人员可以轻松编辑 PowerPoint 幻灯片(包括表格),以增强演示文稿的效果。
VMProtect 是保护程序代码免遭分析与破解的利器,但很多开发者在实现注册机制时犯了关键性错误,使得再强大的加壳工具也难以阻挡黑客破解。本文将从注册逻辑设计、密钥验证方式、注册状态存储等多个角度,系统拆解常见误区,并结合 VMProtect 的虚拟化和加密策略,提供构建高强度注册保护的实战方案。
在本文中,我们将探讨如何在FastReport .NET中配置与 Apache Ignite 的连接。您将学习通过代码和报表设计器连接插件的必要步骤。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢