在Java中创建更高级的元素:Swing或图像

时间:2012-11-30 22:58:50

标签: java swing user-interface

使用Swing在Java中创建GUI时,应该如何创建更高级的“元素”?例如,考虑: enter image description here

这可以使用 ~10张图片来完成,具体取决于当前页面或状态。我也确信可以通过编程方式进行此操作,但是,考虑到我过去使用Swing的经验,我也确信它是一个相对简单的很多代码。特别是考虑到这可以在具有最多~40行代码的CSS中完成。

在这种情况下,有没有其他方法来创建这个“元素”?如果没有;什么是首选:图像或摇摆?

3 个答案:

答案 0 :(得分:4)

  1. 您可以使用合适的Unicode字形,例如✓—CHECK MARK或任何数字,

    • 作为标签的文字,显示为here

    • 作为GlyphVector,提及here

    • 作为渲染图像,如here所示。

  2. 您可以通过实施Icon界面获得有色,抗锯齿的圈子; ColorIcon就是一个例子。

  3. 您可以使用BasciStroke看到here,获得各种实线和虚线。

  4. 在库存layout managers中,FlowLayout可能就足够了。

答案 1 :(得分:3)

这将归结为要求。

如果您希望它可扩展,那么Swing图形是您的最佳选择。如果没有,图像应该没问题。如果您希望它可以重复使用(对于 n 可能的连接),那么Swing图形是更好的选择。如果您的连接数量有限且永远不会改变,那么图像就可以了。

您还需要考虑改变外观和感觉是多么容易。图像需要时间来创建,但渲染器提供了更大的灵活性。

对我而言,我通常会将两者结合使用。渲染文本相对简单,但像复选标记这样的东西需要更多时间来创建。

您还必须考虑是否要生成单个图像并进行渲染,它会为每个部分使用单独的组件。

我也会考虑导航这样的事情。您是否需要它,如果是这样,是否更容易使用MouseListeners的组件或将视图转换为模型以确定将要发生的事情。

答案 2 :(得分:2)

如果你真的必须使用Java(正如你所说,使用CSS,实现类似的东西要容易得多),我认为使用图像会更好。

生成图形元素的代码可以实现,但除了更难做之外,它是不可维护的:任何对设计的任意简单更改都可能需要很长时间才能实现。

与此相反,图像可以轻松替换,有时甚至无需重新编译应用程序(如果它们保持相同的大小,格式等)。

在性能方面,使用swing或其他库可以让您获得几千字节的应用程序大小,而使用图像可能会使您的应用程序在资源有限的情况下更具响应性(移动应用程序,旧计算机)