是否有基于平面设计概念的Java外观?

时间:2014-09-15 20:10:03

标签: java swing look-and-feel

我有5个用于工程的java系统,其UI是使用Swing开发的。

大约10年前,我们开始开发这些系统,每个系统都有大约300K行代码。所有这些系统都处于生产环境中。

让我们对这些系统的用户界面感到烦恼的一个问题是,与手机,平板电脑和网站的大量可用用户界面相比,它们看起来很旧。

手机,平板电脑和网站UI有什么共同之处?它们的外观基于平面设计理念。

因此,我们正在开展一项研究,寻找低成本替代方案,为我们的系统提供面向平面设计的现代外观。

我们想到的第一个选项是搜索基于平面设计概念实现的Java L& F.但是我们找不到一个。

有没有人知道是否有基于Java的外观和感觉,特别是平面设计概念?

祝你好运, 克劳迪奥。

2 个答案:

答案 0 :(得分:6)

没有预先构建的用户界面,Swing中的用户界面......嗯......我曾经有过的最痛苦的开发经历之一。 UI本质上是特定于平台的,因此跨平台UI是任何半复杂UI的管道梦想。它唯一可行的地方是你的UI基本上是一个菜单栏和一个你自己绘制UI的表面。

那就是说,我认为长期你可能会在某种程度上研究自定义UI和小部件的工作,虽然这会是很多自定义UI工具的工作,但权衡是至少你会控制从那时起,用户界面可以随着时间的推移保持最新状态,您不必担心Java决定什么是优秀的UI设计。

一些可能的选择,其中任何一个都不会没有重大痛苦:

  1. 选择one of the two built-in L&F options, or set it to be the platform default(您的应用看起来像原生平台),但您必须分别在每个平台上调试应用,以确保用户界面始终如一。至少使用此选项,如果您将其设置为使用平台默认设置,则应用程序在其所使用的操作系统上看起来大致类似于本机应用程序。
  2. Look into SWT - 从长远来看可能不值得 - 我认为你只是为另一个人交换一套不太理想的情况,但至少可以了解你的选择
  3. Style the L&F with CSS - 从未尝试过这个 - 但也许值得一看。但就个人而言,如果可以避免,我会避免投入任何更多时间将您的应用程序绑定到Swing。正如您所见,它只是那些恶劣的桌面体验之一。
  4. 将您的应用程序作为Web应用程序提供,我确信这是一个重要的重新架构,并且让用户通过浏览器访问它。我意识到这可能是"核选项" ,并且完全不切实际,但只是把它扔到那里。
  5. 吸吮它,让你的应用继续看起来像垃圾。世界上有更糟糕的命运。

答案 1 :(得分:2)

让旧摇摆应用看起来很新的一种快捷方法是改变它的外观。

Nimbus的外观看起来不错enter image description here

查看Oracle Tutorial on Look and Feel,了解如何更改或创建自己的。

要改变外观,只需在应用中添加几行代码即可。

以下是如何更改为Nimbus:

try {
    //recommended way to set Nimbus LaF because old versions of Java 6
    //don't have it included
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
       if ("Nimbus".equals(info.getName())) {
           UIManager.setLookAndFeel(info.getClassName());
           break;
        }
    }
} catch (Exception e) {
    // If Nimbus is not available, you can set the GUI to another look and feel.
}