2011-04-17 57 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