在本文中,我们将展示如何使用 Java Swing GUI 工具包和我们基于 Chromium 引擎的库 — JxBrowser 创建一个跨桌面Kiosk应用程序,该应用程序可在 Windows、Linux 和 Mac OS X 上运行,并显示现代 Web 内容。

Kiosk 应用程序广泛用于银行、教育、零售、旅游和娱乐等行业,用作信息点、POS 和产品促销工具。 只要有可能通过自动交易来增强人工服务,Kiosk就会发挥作用。 如今,通过专门的自助机器购买电影票、在大型商店挑选衣服、或在几分钟内办理登机手续的情况并不少见。 当然是业界已知的调整和技巧。 我们经常被问到这样一个问题,即如何使基于浏览器的应用程序以 Kiosk模式运行。 与在专门的Kiosk开发平台上构建的应用程序相比,这样的应用程序更容易支持、维护和升级。

在本文中,我们将展示如何使用 Java Swing GUI 工具包和我们基于 Chromium 引擎的库 — JxBrowser

创建一个跨桌面Kiosk应用程序,该应用程序可在 Windows、Linux 和 Mac OS X 上运行,并显示现代 Web 内容。

Kiosk应用程序要求

您可以使用许多技术和工具来构建Kiosk应用程序。 通常,Kiosk应用程序的主要要求是它不应允许终端用户切换到环境中运行的其他应用程序(管理员可能能够与其他软件交互,但不能与终端用户交互)。 因此,您需要显示一个未经修饰的全屏窗口,不允许终端用户与在此环境中安装和运行的其他软件进行交互。

用Java Swing创建一个Kiosk

​​使用 Java Swing GUI 创建跨桌面Kiosk应用程序非常简单。 您需要做的就是创建 javax.swing.JFrame 实例,使其全屏/最大化、不可调整大小、最上层,并删除窗口装饰,如标题、窗口边框等。Java Swing API 提供了所有必要的功能。 以下示例代码演示了如何使用 Java Swing 创建一个简单的Kiosk用程序:

import javax.swing.*;
import java.awt.*;public class KioskApp {public static void main(String[] args) {JFrame frame = new JFrame();// Remove window title and bordersframe.setUndecorated(true);// Make frame topmostframe.setAlwaysOnTop(true);// Disable Alt+F4 on Windowsframe.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);// Make frame full-screenframe.setExtendedState(Frame.MAXIMIZED_BOTH);// Display frameframe.setVisible(true);}
}

在 Kiosk 中显示 Web 内容

使用上述代码构建的Kiosk应用程序不显示任何内容。 为了给我们的应用程序提供显示网页内容的能力,我们可以使用一个允许显示 HTML 内容的标准的 Java Swing 组件 (javax.swing.JEditorPane),,但它有很多限制,并不总是能正确显示基于 HTML5、CSS3 或 JavaScript 的网页内容。 相反,我们可以使用 JxBrowser 库。 JxBrowser 允许 Java 开发人员将基于 Chromium 的 Swing/JavaFX 组件嵌入到 Java 应用程序中,以显示使用 HTML5、CSS3、JavaScript、Flash、Silverlight 等构建的网页。

让我们修改上面的代码并引入允许显示 Web 内容的功能。 我们将添加两个按钮:Google 和 BBC News。 当用户按下 Google 按钮时,我们将让应用程序显示 Google 搜索页面。 当用户按下 BBC News按钮时,应用程序将显示 BBC 新闻主页,用户可以在其中阅读最新新闻。

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class KioskApp {public static void main(String[] args) {// Create Browser instancefinal Browser browser = new Browser();// Create Google and BBC News buttonsJButton googleButton = new JButton("Google");googleButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {browser.loadURL("https://www.google.com");}});JButton bbcButton = new JButton("BBC News");bbcButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {browser.loadURL("http://www.bbc.com/news");}});JPanel actionPane = new JPanel();actionPane.add(googleButton);actionPane.add(bbcButton);JFrame frame = new JFrame();frame.add(actionPane, BorderLayout.WEST);frame.add(new BrowserView(browser), BorderLayout.CENTER);// Remove window title and bordersframe.setUndecorated(true);// Make frame topmostframe.setAlwaysOnTop(true);// Disable Alt+F4 on Windowsframe.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);// Make frame full-screenframe.setExtendedState(Frame.MAXIMIZED_BOTH);// Display frameframe.setVisible(true);}
}

如果您运行此应用程序并按下 BBC News按钮,您将获得以下输出:

由于 Java Swing 和 JxBrowser 支持触摸屏,因此您的Kiosk应用程序可以部署在支持触摸屏的环境中以及锁定的桌面站上。

结论

使用这种基于 Java Swing GUI Toolkit + JxBrowser 的方法,您可以构建允许终端用户与基于 Web 的内容进行交互的跨桌面Kiosk应用程序。 您可以显示不同的网站、门户网站、基于网络的在线帮助系统等。

因此,如果您对Kiosk应用程序有以下要求,那么强烈推荐您使用本文中描述的方法:

  • Kiosk应用程序必须在 Windows、Mac OS X 和 Linux 平台上运行。
  • Kiosk应用程序必须使用 Java Swing 或 JavaFX 框架构建。
  • Kiosk应用程序必须显示 HTML5/CSS/JavaScript 网页内容和网页在线/离线。
  • Kiosk应用程序必须支持触摸屏。

参考链接

Java Swing Tutorials

JxBrowser Library

JxBrowser API Javadoc

Why Use Browser-based content on Kiosks?

基于 Web 的 Java Swing Kiosk 应用程序相关推荐

  1. 计算机毕业设计ssm基于web的社团管理系统r848z系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于web的社团管理系统r848z系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于web的社团管理系统r848z系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构 ...

  2. java mysql物联网土壤智能监控web前端+java后台+数据接程序

    博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 java mysql物联网土壤智能监控web前端+java后台+数据接程序 视频效 ...

  3. java swing开发窗体程序开发(三)事件(Mouse,Foucs,Key,Window)

    接着刚刚的事件讲 补充一点:事件的触发前提,添加了这个监听器的组件必须是处于激活状态的才可行 (一)MouseEvent事件 该事件的触发是由鼠标的动作引起的,引起的情况可以是下面5种,按下鼠标,释放 ...

  4. [附源码]Python计算机毕业设计SSM基于web的烟草售卖系统(程序+LW)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  5. JNoteHelper 给你的java swing或桌面程序提供一双翅膀

    JNoteHelper 使用swing构建的java程序, 主要基于miglayout,swingx,flatlatf. 开发得初衷,只是打算作为个人笔记的助手, 因为基于java swing开发, ...

  6. java swing开发窗体程序开发(四)MVC结构

    MVC是一种设计结构(非设计模式,非设计原则) M:Model 模型层:即用于存储数据的对象 V:View 视图层:即用于为模型提供数据显示的对象 C:Controller 控制器层:即处理用户的业务 ...

  7. java swing开发窗体程序开发(一)GUI编程

    Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代 ...

  8. 出租车系统java_基于WEB的JAVA出租车打车系统

    每天记录学习,每天会有好心情.*^_^* 今天记录的项目是出租车打车系统,这个项目是这么回事:为了适应新型出租车管理体制,设计了一个基于Web平台的出租车管理系统方案.介绍了该系统的总体框架,除常见功 ...

  9. ssm+java计算机毕业设计基于web的社团管理系统96m88(程序+lw+源码+远程部署)

    项目运行 项目含有源码(见文末).文档.程序.数据库.配套开发软件.软件安装教程 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ E ...

  10. [附源码]Python计算机毕业设计SSM基于Web学术会议投稿管理系统(程序+LW)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 写一个 iOS 复杂表单的正确姿势
  2. 关于类和对象的进一步讨论 C++
  3. Picasso:开启大前端的未来
  4. 常见索引结构—B-树
  5. IOS学习笔记十八(copy、mutableCopy、NSCopying、NSMutableCopy、深复制、浅复制)
  6. 优秀的程序员应该掌握多少门编程语言?
  7. Java静态变量注入配置值,工具类使用@Value将信息注入到静态变量中
  8. Android自定义控件学习(七)-------优化视图
  9. 电商android studio,谷歌 Android Studio 4.0 Beta 5 发布
  10. java零碎要点---用java实现生成二维码,与解析代码实现
  11. php+access源码,php操作access源码
  12. cocostudio学习
  13. 二次开发uniswap-01-SDK
  14. 有个程序员的老公是种什么体验,嫁给程序员,我超级后悔!
  15. 深度学习之目标检测--Pytorch实战
  16. 十三、JavaScript ajax请求
  17. 手游开发-客户端那些事1
  18. 【Swoole系列3.5】进程池与进程管理器
  19. 4.2 英文分词及词性标注
  20. Tensorflow 优化器(optimizer)

热门文章

  1. 先有鸡还是先有蛋的定论
  2. UEFI HOB 学习
  3. docker搭建snipe-it
  4. vue+js input文本框输入时自动填充邮箱后缀组件封装
  5. c语言情话编程,用c语言编写浪漫情话
  6. Tensorflow-GPU使用时笔记本电脑声音过大的问题
  7. JAVA身份证阅读器数据返回图片
  8. 单元测试总结反思_单元测试小反思200字
  9. 古筝四秀 宋婷婷、付娜、常静、吴莉
  10. 11gR2 新特性--待定的统计信息(Pending Statistic)