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

問題は、Midi の長さによっては、この内部 BufferedImage がかなり巨大になる可能性があるため、大量の RAM を消費することですが、これを行うための他の方法は考えられません。

どんなアイデアでも大歓迎です。

前もって感謝します!

4

1 に答える 1

0

paintComponent(Graphics)画像を生成する代わりに、カスタム Swing コンポーネントを作成し、すべての描画をメソッドで行う必要があり ます。

プロセスをスピードアップするには、このチュートリアルを確認してください。

于 2013-05-12T21:24:17.130 に答える