3

使用 Swing 在 Java 中创建 GUI 时,应该如何创建更高级的“元素”?例如,考虑: 在此处输入图像描述

这可以根据当前页面或状态使用大约 10 个图像来完成。我也确信可以以编程方式执行此操作,但是,考虑到我过去使用 Swing 的经验,我也确信对于一些相对简单的. 特别是考虑到这可以在 CSS 中使用最多约 40 行代码来完成。

在这种情况下,是否有任何替代方法来创建这个“元素”?如果不; 什么是首选:图像或 Swing?

4

3 回答 3

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

    • 作为标签的文本,显示在此处

    • 作为一个,这里GlyphVector提到。

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

  2. Icon您可以通过实现接口来获得一个有色、抗锯齿的圆圈;ColorIcon是一个例子。

  3. 您可以使用在这里BasciStroke看到的各种实线和虚线。

  4. 在库存布局经理中,FlowLayout可能就足够了。

于 2012-12-01T01:29:41.833 回答
3

这将归结为要求。

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

您还需要考虑更改外观和感觉的难易程度。创建图像需要时间,但渲染器提供了更大的灵活性。

对我来说,我通常会使用两者的组合。渲染文本相对简单,但是像复选标记这样的东西会花费更多时间来创建。

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

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

于 2012-11-30T23:15:58.187 回答
2

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

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

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

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

于 2012-11-30T23:09:28.950 回答