1

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

我的意图如下:

  1. 打开一个 MIDI 文件。
  2. 阅读笔记。
  3. 生成显示此数据的 GUI。
  4. 播放时不断移动 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,但我想不出其他方法来做到这一点。

任何想法都会非常感激。

先感谢您!

4

1 回答 1

0

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

检查本教程以加快该过程。

于 2013-05-12T21:24:17.130 回答