我正在构建类似Java SingStar的应用程序,我需要一些帮助,因为我对Java Swing不是很有经验,尽管有关于布局的所有基本知识等等。
我的意图如下:
我想到(并且做过)的是创建一个代表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,但我想不出其他的方法。
任何想法都会非常感激。
提前谢谢!
答案 0 :(得分:0)
您应该编写一个自定义Swing组件并完成所有绘图
paintComponent(Graphics)
方法,而不是生成图像。
检查this tutorial以加快整个过程。