高效的动态生成的Java GUI

时间:2013-05-12 21:00:34

标签: java user-interface

我正在构建类似Java SingStar的应用程序,我需要一些帮助,因为我对Java Swing不是很有经验,尽管有关于布局的所有基本知识等等。

我的意图如下:

  1. 打开Midi文件。
  2. 阅读笔记。
  3. 生成显示此数据的GUI。
  4. 在播放时不断移动GUI。
  5. 我想到(并且做过)的是创建一个代表Midi数据的BufferedImage。所以,例如,我有一个MidiLength x ScreenHeight BufferedImage(通常是1024 x> 10.000),我动态地读取midi数据。然后我展示了BufferedImage的第一个ScreenWidth x ScreenHeight部分,当用户开始播放时,我每5ms更新一次BufferedImage子图像x起始坐标。这样我就能成功实现我的目标。

    我发布了一个GUI图像,这样你就可以更好地了解我在说什么。

    http://img844.imageshack.us/img844/3324/javagui.png

    问题是这个内部BufferedImage可能非常大,取决于Midi长度,所以它占用了大量的RAM,但我想不出其他的方法。

    任何想法都会非常感激。

    提前谢谢!

1 个答案:

答案 0 :(得分:0)

您应该编写一个自定义Swing组件并完成所有绘图 paintComponent(Graphics)方法,而不是生成图像。

检查this tutorial以加快整个过程。