1

我们正在尝试使用各种放大器显示已经从电吉他录制的输入音频信号。我们正在寻找一种用 Java 显示的算法。

我们目前正在研究 AWT 和 Swing 库,并且想知道:哪个更适合图形或视觉显示?

4

4 回答 4

2

你会被允许使用 JavaFx 吗?我问的原因是 JavaFx 2.0 有一些专门为这类多媒体任务设计的优秀 api。这对于 swing 或 awt 是可行的,但为什么不善待自己呢?我没有时间或空间在这里深入探讨它,但我推荐 Apress 的“Javafx 2.0 简介”或“Pro JavaFx 2.0”。我会说第二个更好,更全面。我相信两者都有示例代码,几乎可以完成您刚才描述的操作。

祝你好运!!

于 2012-09-03T04:03:49.310 回答
2

为此,请使用 Swing 而不是 AWT。两者都可以,但 Swing 更现代,支持 AWT API 中缺少的组件(JTreeJTable..)和功能(内置双缓冲、键绑定、PLAF、支持富文本)。

使用 Swing 的另一个优点是,您似乎正处于需要进一步提问的阶段。大多数使用 Java SE 编写 GUI 的人从未使用过 AWT 组件,而我们其他人大多都忘记了如何使用!(在这一点上,可以帮助 Swing 的人比 JavaFX 多得多。)

在 AWT 中,您可以使用 aCanvas来绘制波形,但在 Swing 中,您可以使用以下任一方法:

  • A JPanel(或有时是JComponent)我们覆盖的绘制位置paintComponent(Graphics)
  • 中的一个BufferedImage显示器JLabel

你可以在 DrewTubeish 看到第一种技术的例子——这里是Leftover Wine

于 2012-09-03T04:12:55.440 回答
1

JFreeChart包括各种合适的图表;这里有一个时域示例。这KineticModel扩展JLabel并实施Icon以显示频域Histogram。两者都不需要Swing,但在 Swing 上下文中都可以更好地工作。

于 2012-09-03T15:45:54.297 回答
1

我在音频领域的主要项目中使用过 AWT、Swing 和 JavaFX,包括波形绘制和编辑。以下是我的想法:

  • AWT 没有被开发或教授。我不知道有任何开发人员仍在使用它。我不会使用它。
  • JavaFX 是一场灾难。早在 2010 年,我正在开发最大的 JavaFX 代码库,我们放弃了它。我确信它已经变得更好了,但我还没有听到有人说它可以处理重大项目。如果您的项目很小,JavaFX 可能是一个不错的选择,或者如果您感觉强烈,您可能需要做进一步的研究。你可以在这里阅读更多关于我的经历:http: //blog.bjornroche.com/2010/03/java-nofx-why-one-project-dropped.html
  • Swing 有问题,应该受到很多批评,但如果你知道自己在做什么,它会很棒。我用它开发了一些很棒的用户界面(它们看起来和设计一模一样)。Swing 是在 AWT 之上编写的,您可能会认为这会使它变慢,但是有很多优化实际上使它在大多数平台上都非常快。如果我理解正确的话,CodenameOne 使用类似 swing 的界面,所以在我的书中,这是对 swing 的另一票:http: //www.codenameone.com/
  • SWT 是另一种选择。http://www.eclipse.org/swt/我从来没有用过它,但我知道你必须用它来做你自己的内存管理,IMO,它带走了很多使用 Java 的优势。不过,就像我说的那样,我从未使用过它,所以我可能是错的。它是 Eclipse 的原生工具包。
于 2012-09-04T02:47:40.383 回答