📄 demo.java
字号:
/* Demo.java -- And example of MIDI support Copyright (C) 2005 Free Software Foundation, Inc.This file is part of GNU Classpath examples.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING. If not, write to theFree Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA02110-1301 USA. */package gnu.classpath.examples.midi;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.sound.midi.*;/** * An example how javax.sound.midi facilities work. */public class Demo extends Frame implements ItemListener{ Choice midiInChoice = new Choice(); Choice midiOutChoice = new Choice(); MidiDevice inDevice = null; MidiDevice outDevice = null; ArrayList inDevices = new ArrayList(); ArrayList outDevices = new ArrayList(); public Demo () throws Exception { MenuBar mb = new MenuBar (); Menu menu = new Menu ("File"); MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q')); quit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu.add (quit); mb.add(menu); setTitle("synthcity: the GNU Classpath MIDI Demo"); setLayout(new FlowLayout()); MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); for (int i = 0; i < infos.length; i++) { MidiDevice device = MidiSystem.getMidiDevice(infos[i]); if (device.getMaxReceivers() > 0) { midiOutChoice.addItem(infos[i].getDescription()); outDevices.add(device); } if (device.getMaxTransmitters() > 0) { midiInChoice.addItem(infos[i].getDescription()); inDevices.add(device); } } setMenuBar (mb); add(new Label("MIDI IN: ")); add(midiInChoice); add(new Label(" MIDI OUT: ")); add(midiOutChoice); midiInChoice.addItemListener(this); midiOutChoice.addItemListener(this); pack(); show(); } public void itemStateChanged (ItemEvent e) { try { if (e.getItemSelectable() == midiInChoice) { if (inDevice != null) inDevice.close(); inDevice = (MidiDevice) inDevices.get(midiInChoice.getSelectedIndex()); } if (e.getItemSelectable() == midiOutChoice) { if (outDevice != null) outDevice.close(); outDevice = (MidiDevice) outDevices.get(midiOutChoice.getSelectedIndex()); } if (inDevice != null && outDevice != null) { if (! inDevice.isOpen()) inDevice.open(); if (! outDevice.isOpen()) outDevice.open(); Transmitter t = inDevice.getTransmitter(); if (t == null) System.err.println (inDevice + ".getTransmitter() == null"); Receiver r = outDevice.getReceiver(); if (r == null) System.err.println (outDevice + ".getReceiver() == null"); if (t != null && r != null) t.setReceiver (r); } } catch (Exception ex) { ex.printStackTrace(); } } public static void main (String args[]) throws Exception { new Demo(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -