我正在構建一個類似Java的SingStar應用程序,因爲儘管掌握了關於佈局等的基本知識,但我仍然不熟悉Java Swing。高效的動態生成的Java GUI
我的意圖有以下幾種:
- 打開一個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,但我不能這樣做想別的辦法。
任何想法將非常讚賞。
預先感謝您!
難道你不能「流」緩衝的圖像,所以它只是使用內存中的內容ram? – 2013-05-12 21:06:51
問題在於,我需要生成「即時」圖像,並且它非常動態(每隔幾毫秒更改一次)。我可以生成固定大小的圖像窗口(例如1024x4000),並生成下一個「即時」的圖像窗口。但是我想考慮其他解決方案,如果它存在的話,因爲我不想用GUI來強調CPU,因爲我會使用很好的執行不同的計算。無論如何,非常感謝你的回答,如果沒有其他解決方案,我會實現這一點。 – alexdemartos 2013-05-12 21:20:36
不能讓你自己的JPanel動態繪製它嗎?這是最簡單的方法...從你的截圖中,我會說這將是非常簡單的,並且快速和高效的內存...... – tilpner 2013-05-12 21:23:06