如何创建“现代外观”的 Java 桌面应用程序?

2024-01-20

类似的问题会定期被问到,但其中许多答案已经过时了。

我需要用 Java 构建一个跨平台桌面应用程序,其 GUI 的质量可与当代桌面应用程序相当。

Swing 是默认选择,但我还没有遇到过至少看起来不太过时和笨重的 Swing 应用程序(我知道这是主观的,但对于 GUI,很难避免审美判断)。

我注意到新的比特币客户端现在使用带有 Java 绑定的 QT,并且确实具有有吸引力的用户界面,但这有一个缺点,即它不再是纯 Java。

当我搜索与 Swing 相关的库时,我发现的很多内容已经有 5 年或更早的历史了,尽管桌面应用程序的美观从那时起已经发生了显着的变化。

如果您需要从头开始构建 Java 桌面应用程序,您会使用什么 GUI?


我还可以为您提供一个新的 LaF 供您研究 -WebLaF http://weblookandfeel.com。我目前正在致力于引入许多 UI 功能,并通过使用 WebLaF 库的基本功能,让任何人都可以更轻松地使用 Swing。

A few examples showing how some of WebLaF components look like: Some of WebLaF components

我的一些主要目标:

  1. 外观精美、现代的 L&F,支持所有 Swing 组件
  2. 标准 Swing 中找不到的一组广泛的附加组件
  3. 大量实用程序类可帮助您编写代码

WebLaF 库还提出了一些其他优点和独特功能:

  1. 它是一个开源项目(GPLv3 许可)
  2. 使用画家系统轻松设计组件样式(特别是 9 补丁文件)
  3. 快速轻松地自定义默认“Web”样式
  4. 许多功能可加速和简化 Swing 应用程序界面的创建

您可以尝试demo-app http://weblookandfeel.com/downloads/weblookandfeel.jnlp看看它是否足够现代和简单:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建“现代外观”的 Java 桌面应用程序? 的相关文章

  • 如何在由子控件组成的 SWT 复合材料上跟踪鼠标?

    我创建了自己的控件 我想跟踪鼠标并添加一个MouseTrackListener 很遗憾MouseEnter and MouseLeave当鼠标移动到我的合成部分 即标签和按钮 上时 也会生成事件 Mouse enter mouse ente
  • 如何在java中将数组值排序为循环格式?

    我的数组值如下 String value 1 2 3 4 5 6 7 8 9 10 假设如果我将值 5 传递给 tat 数组 它应该按如下顺序排序 5 6 7 8 9 10 1 2 3 4 怎么办 有人帮忙吗 感谢你 你需要的就是所谓的轮换
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 如何使用 C++ 禁用另一个进程中窗口上的关闭按钮?

    我需要从另一个进程禁用窗口上的关闭按钮 我有它的句柄hWnd我尝试这样做 DWORD dwCStyle GetClassLongPtr hWnd GCL STYLE SetClassLongPtr hWnd GCL STYLE dwCSty
  • 带有图层列表的自定义背景以显示对角线?

    我只想创建一个自定义背景 但我不知道如何使用 xml 而不是图像来做到这一点 这是 XML
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • Jetty、websocket、java.lang.RuntimeException:无法加载平台配置器

    我尝试在 Endpoint 中获取 http 会话 我遵循了这个建议https stackoverflow com a 17994303 https stackoverflow com a 17994303 这就是我这样做的原因 publi
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO

随机推荐

  • 如何在 Ubuntu 上安装 Buildozer 以创建 Kivy 应用程序的 Android APK?

    在 Ubuntu 13 10 上安装 buildozer 并不容易 我重新安装了 Ubuntu 好几次 现在我想分享一下我是如何安装 buildozer 的 我从 buildozer 收到以下错误 distribute sh 未找到 gt
  • 如何在新版本的android studio 4.2中获取SHA1代码?

    在此更新之前 我们可以从 Gradle 获取 SHA1 代码 但现在看起来已经发生了变化 通过这样做解决了这个问题 检查这里 https i stack imgur com fPxHp png File Settings 实验性的 取消选中
  • 路径 MTU 发现

    我正在开发一个应用程序 用于处理 视频处理等 并通过网络发送大文件 高达数十GB 我正在使用 FTP 发送文件 为了提高应用程序的性能 内存消耗 我想优化缓冲区 这样我就不会发送太大且碎片化的数据包 我遇到的问题是我没有太多的 RAM 来保
  • Python 无法安装 Box2D swig.exe 失败,错误代码 1

    我尝试在 python 上安装 Box2D 但收到错误日志 C gt pip3 install Box2D Collecting Box2D Using cached https files pythonhosted org package
  • Rails 查询 has_many :through 有条件地使用多个 id

    我正在尝试为通过 LocationFeature 模型具有位置和功能的网站构建一个过滤系统 基本上它应该做的是根据功能 ID 的组合为我提供所有位置 例如 如果我调用该方法 Location find by features 1 3 4 它
  • 从coverage.py 运行测试与从测试运行程序运行覆盖率

    在此期间内德 巴切尔德 Ned Batchelder 的 Coverage py http pythontesting net podcast coverage ned batchelder python testing 播客 Brian
  • 如何使网格列表中的每一行具有相同数量的项目(使用 Flexbox)? [复制]

    这个问题在这里已经有答案了 我使用以下 CSS Flexbox http css tricks com snippets css a guide to flexbox 也实现了下面第一张图片中看到的网格列表 display flex jus
  • 如何让 UISearchBar 范围栏始终可见?

    这是我在 iPhone SDK 方面遇到的最新问题 我已经设置了一个 UISearchBar 及其委托 另外 当我加载视图时 我会调用 self searchDisplayController searchBar showsScopeBar
  • 测试 IF 文件是否存在,ELSE xcopy 这两个文件

    大家早 因此 我花了几个小时试图将其他帖子的各种回复拼凑到我自己的代码中 以便看看是否可以获得有用的东西 不许去 我已经完全迷失在酱汁中了 所以我现在必须向你寻求帮助 背景 操作系统 Windows 10 我每天晚上使用程序 text2fo
  • 非常简单,只需单击链接即可更改单个页面上的 Div 内容

    我是编码方面的初学者 我一直在尝试在互联网上搜索不同的方法来做到这一点 而且它们似乎无处不在 我有一个简单的页面 其中包含 关于我 链接和 联系方式 链接 我希望默认信息是 关于我 信息 然后如果您单击页面上内容的 联系人 则切换到我的联系
  • therubyracer 或 nodejs,我应该使用哪个?

    我正在关注ruby on Rails 入门指南 http guides rubyonrails org getting started html在新安装的 Ubuntu 12 10 上 我准备好跑步rake db create但我收到以下错
  • Haskell - 输入“|”时出现解析错误

    pow1 b e e 0 1 otherwise b pow1 b e 1 我在 hs 文件中有完全相同的代码 并且在加载时我总是得到相同的解析错误 我不认为它实际上包含任何错误 所以我目前的想法是 符号不是 haskell 想要的 但它是
  • 多态与 if 和逻辑

    class Person private state normal cripple run if this state normal console log run else console log hobble vs abstract c
  • 将数据从 DataGridView 插入数据库

    我有一个小的 DataGridView 可以让用户输入数据 我正在尝试使用此代码将 DataGridView 中的数据输入到数据库中 strQry INSERT INTO Emp Fam Details empID famName famA
  • 包含文件内 __FILE__ 的 PHP 输出

    好的 这是一个真正的简短查询 我正在打电话 FILE 从函数内部 现在 该函数本身位于所需的文件中 现在 当我从父文件中调用这个函数时 FILE 输出父文件或包含的文件 哦 如果可能的话 我正在寻找可以确认的来源 因为我在这里的测试给出了完
  • 按索引数组过滤数组

    我有第一个值数组和第二个索引数组 我想过滤第一个数组并仅返回在第二个数组中具有索引的值 所以 给定 arr1 4775453877338112 5901353784180736 6605041225957376 arr2 0 2 我想返回
  • Google 地图链接“Safari 无法打开该页面,因为地址无效”

    我有一部装有 iOS7 的 iPhone 4s 但没有安装 Google 地图应用程序 每当我尝试导航到其上的位置链接时 它都会向我闪烁一条错误消息 Cannot Open Page Safari cannot open the page
  • C++:使用“.hh”作为 C++ 头文件扩展名的原因 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用包 AWSS3.jl 连接到在 EC2 实例上运行的 S3 存储桶?

    我正在尝试在 AWS 计算集群上使用 Julia 处理来自 Amazon S3 存储桶的数据 我如何在 Julia 中使用AWSS3 jl打开与 S3 存储桶的连接 我特别想知道配置连接并随后使用 Julia 的该配置的最佳方法是什么 创建
  • 如何创建“现代外观”的 Java 桌面应用程序?

    类似的问题会定期被问到 但其中许多答案已经过时了 我需要用 Java 构建一个跨平台桌面应用程序 其 GUI 的质量可与当代桌面应用程序相当 Swing 是默认选择 但我还没有遇到过至少看起来不太过时和笨重的 Swing 应用程序 我知道这