我正在构建一个类似 Java SingStar 的应用程序,我需要一些帮助,因为我对 Java Swing 不是很有经验,尽管我有关于布局等的所有基本知识。
我的意图如下:
- 打开一个 MIDI 文件。
- 阅读笔记。
- 生成显示此数据的 GUI。
- 播放时不断移动 GUI。
我的想法(并且做了)是创建一个代表 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,但我想不出其他方法来做到这一点。
任何想法都会非常感激。
先感谢您!