1 package camidion.chordhelper.midieditor;
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
6 import javax.swing.JComboBox;
8 import camidion.chordhelper.music.MIDISpec;
11 * MIDI Instrument (Program) Family - 音色ファミリーの選択
13 public class MidiProgramFamilySelecter extends JComboBox<String> implements ActionListener {
14 private MidiProgramSelecter programSelecter = null;
15 public MidiProgramFamilySelecter() { this(null); }
16 public MidiProgramFamilySelecter( MidiProgramSelecter mps ) {
17 programSelecter = mps;
18 setMaximumRowCount(17);
20 for( int i=0; i < MIDISpec.instrumentFamilyNames.length; i++ ) {
21 addItem( (i*8) + "-" + (i*8+7) + ": " + MIDISpec.instrumentFamilyNames[i] );
24 addActionListener(this);
26 public void actionPerformed(ActionEvent event) {
27 if( programSelecter == null ) return;
28 int i = getSelectedIndex();
29 programSelecter.setFamily( i < 0 ? i : i-1 );
31 public int getProgram() {
32 int i = getSelectedIndex();
33 if( i <= 0 ) return -1;
36 public String getProgramFamilyName() { return (String)( getSelectedItem() ); }
37 public void setProgram( int programNumber ) {
38 if( programNumber < 0 ) programNumber = 0;
39 else programNumber = programNumber / 8 + 1;
40 setSelectedIndex( programNumber );