我想使用默认的128个MIDI乐器填充ComboBox
,但是调用Synthesizer.getDefaultSoundbank().getInstruments()
会返回一个每个乐器列表(我的机器上超过400个)。
然后我将所有可用乐器的列表复制到Object
数组(名为_instruments
),虽然它给了我所需要的一切,但只需要前128个元素
_soundbank = _synthesizer.getDefaultSoundbank();
_synthesizer.loadAllInstruments(_soundbank);
_synthesizer.close();
_instrument = _soundbank.getInstruments();
是否有特定的方法来获取第一组仪器,或者是否可以在数组中的前128个元素之后简单地修剪任何东西?那样我只剩下第一套全套。
我希望这是有道理的,这是一个尴尬的场景。谢谢!
答案 0 :(得分:5)
最短且更舒适的方法是使用Arrays.copyOf
。见下文:
_instrument = Arrays.copyOf(_soundbank.getInstruments(), 128);
有关详细信息,请参阅Javadoc。
答案 1 :(得分:2)
Java自己的Arrays.copyOfRange(..)如何提取前128个?