2011-04-17 60 views
1

我要來用默認的128 MIDI樂器一ComboBox,但調用Synthesizer.getDefaultSoundbank().getInstruments()返回儀器提供(超過400我的機器上)的列表。檢索數據的特定範圍從陣列(爪哇)

然後我所有可用工具的列表複製到一個Object陣列(命名爲_instruments),但它給了我,我可能永遠需要的一切,我只需要前128個元素

  _soundbank = _synthesizer.getDefaultSoundbank(); 
      _synthesizer.loadAllInstruments(_soundbank); 
      _synthesizer.close(); 
      _instrument = _soundbank.getInstruments(); 

有沒有拿到第一的文書的具體辦法或將有可能在數組中第一個128元后,簡單地修剪什麼?這樣我只剩下第一套全套。

我希望這是有道理的,這是一個尷尬的場景。謝謝!

回答

5

最簡單最舒服的方法是使用Arrays.copyOf。見下:

_instrument = Arrays.copyOf(_soundbank.getInstruments(), 128); 

查看Javadoc瞭解更多信息。

+0

工程就像一個魅力,比我最初的實施要好得多。謝謝! – 2011-04-23 17:53:32

+0

@Jamie Keeling:不客氣;-) – 2011-04-25 09:37:41