我们正在尝试使用各种放大器显示已经从电吉他录制的输入音频信号。我们正在寻找一种用Java显示的算法。
我们目前正在研究AWT和Swing库,并想知道:哪一个更适合于图形或可视化显示?
发布于 2012-09-03 12:12:55
为此,请使用Swing而不是AWT。两者都能做到这一点,但Swing更现代,并且支持组件(JTree、JTable..)以及AWT API所缺少的功能(双缓冲内置、键绑定、PLAFs、对富文本的支持)。
使用Swing的另一个好处是,您似乎处于需要提出更多问题的阶段。大多数使用Java编写GUI的人从未使用过AWT组件,而我们其余的人几乎忘记了是如何使用的!(在这一点上,可以帮助Swing的人比JavaFX多得多。)
在AWT中,您可以使用Canvas来绘制波形,但在Swing中,您可以使用以下任一方法:
覆盖JLabel.中的paintComponent(Graphics)
JPanel (有时也称为JComponent) BufferedImage display你可以在DrewTubeish上看到第一种技术的例子--这里是Leftover Wine。
发布于 2012-09-03 12:03:49
你会被允许使用JavaFx吗?我问这个问题的原因是,JavaFx 2.0有一些优秀的应用程序接口专门为这类多媒体任务设计的。当然,使用swing或awt可以做到这一点,但是为什么不善待自己呢?我没有时间或篇幅在这里深入探讨,但我会推荐Apress的“Introduction to JavaFX2.0 by Example”或“Pro Javafx 2.0”。我会说第二个更好,更全面。我相信两者都有样例代码,可以完成您刚才所描述的内容。
祝你好运!
发布于 2012-09-03 23:45:54
JFreeChart包括一个合适图表的variety;有一个时域示例here。该KineticModel扩展了JLabel并实现了Icon以显示频域Histogram。两者都不需要Swing,但它们在Swing上下文中都能更好地工作。
https://stackoverflow.com/questions/12241829
复制相似问题