亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? midisynth.java

?? java midi 鋼琴界面 利用鼠標指針拖動 可以模仿鋼琴 風琴 吉他 等等西洋樂器 需編譯!
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
            table.setPreferredScrollableViewportSize(new Dimension(nCols*110, 200));            table.setCellSelectionEnabled(true);            table.setColumnSelectionAllowed(true);            for (int i = 0; i < names.length; i++) {                TableColumn column = table.getColumn(names[i]);                column.setPreferredWidth(110);            }            table.setAutoResizeMode(table.AUTO_RESIZE_OFF);                    JScrollPane sp = new JScrollPane(table);            sp.setVerticalScrollBarPolicy(sp.VERTICAL_SCROLLBAR_NEVER);            sp.setHorizontalScrollBarPolicy(sp.HORIZONTAL_SCROLLBAR_ALWAYS);            add(sp);        }        public Dimension getPreferredSize() {            return new Dimension(800,170);        }        public Dimension getMaximumSize() {            return new Dimension(800,170);        }        private void programChange(int program) {            if (instruments != null) {                synthesizer.loadInstrument(instruments[program]);            }            cc.channel.programChange(program);            if (record) {                createShortEvent(PROGRAM, program);            }        }    }    /**     * A collection of MIDI controllers.     */    class Controls extends JPanel implements ActionListener, ChangeListener, ItemListener {        public JButton recordB;        JMenu menu;        int fileNum = 0;        public Controls() {            setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));            setBorder(new EmptyBorder(5,10,5,10));            JPanel p = new JPanel();            p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));            veloS = createSlider("Velocity", p);            presS = createSlider("Pressure", p);            revbS = createSlider("Reverb", p);			// create a slider with a 14-bit range of values for pitch-bend            bendS = create14BitSlider("Bend", p);            p.add(Box.createHorizontalStrut(10));            add(p);            p = new JPanel();            p.setBorder(new EmptyBorder(10,0,10,0));            p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));            JComboBox combo = new JComboBox();            combo.setPreferredSize(new Dimension(120,25));            combo.setMaximumSize(new Dimension(120,25));            for (int i = 1; i <= 16; i++) {                combo.addItem("Channel " + String.valueOf(i));            }             combo.addItemListener(this);            p.add(combo);            p.add(Box.createHorizontalStrut(20));            muteCB = createCheckBox("Mute", p);            soloCB = createCheckBox("Solo", p);            monoCB = createCheckBox("Mono", p);            //sustCB = createCheckBox("Sustain", p);            createButton("All Notes Off", p);            p.add(Box.createHorizontalStrut(10));            p.add(mouseOverCB);            p.add(Box.createHorizontalStrut(10));            recordB = createButton("Record...", p);            add(p);        }        public JButton createButton(String name, JPanel p) {            JButton b = new JButton(name);            b.addActionListener(this);            p.add(b);            return b;        }        private JCheckBox createCheckBox(String name, JPanel p) {            JCheckBox cb = new JCheckBox(name);            cb.addItemListener(this);            p.add(cb);            return cb;        }        private JSlider createSlider(String name, JPanel p) {            JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 127, 64);            slider.addChangeListener(this);            TitledBorder tb = new TitledBorder(new EtchedBorder());            tb.setTitle(name + " = 64");            slider.setBorder(tb);            p.add(slider);            p.add(Box.createHorizontalStrut(5));            return slider;        }        private JSlider create14BitSlider(String name, JPanel p) {            JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 16383, 8192);            slider.addChangeListener(this);            TitledBorder tb = new TitledBorder(new EtchedBorder());            tb.setTitle(name + " = 8192");            slider.setBorder(tb);            p.add(slider);            p.add(Box.createHorizontalStrut(5));            return slider;        }        public void stateChanged(ChangeEvent e) {            JSlider slider = (JSlider) e.getSource();            int value = slider.getValue();            TitledBorder tb = (TitledBorder) slider.getBorder();            String s = tb.getTitle();            tb.setTitle(s.substring(0, s.indexOf('=')+1) + s.valueOf(value));            if (s.startsWith("Velocity")) {                cc.velocity = value;            } else if (s.startsWith("Pressure")) {                cc.channel.setChannelPressure(cc.pressure = value);            } else if (s.startsWith("Bend")) {                cc.channel.setPitchBend(cc.bend = value);            } else if (s.startsWith("Reverb")) {                cc.channel.controlChange(REVERB, cc.reverb = value);            }            slider.repaint();        }        public void itemStateChanged(ItemEvent e) {            if (e.getSource() instanceof JComboBox) {                JComboBox combo = (JComboBox) e.getSource();                cc = channels[combo.getSelectedIndex()];                cc.setComponentStates();            } else {                JCheckBox cb = (JCheckBox) e.getSource();                String name = cb.getText();                if (name.startsWith("Mute")) {                    cc.channel.setMute(cc.mute = cb.isSelected());                } else if (name.startsWith("Solo")) {                    cc.channel.setSolo(cc.solo = cb.isSelected());                } else if (name.startsWith("Mono")) {                    cc.channel.setMono(cc.mono = cb.isSelected());                } else if (name.startsWith("Sustain")) {                    cc.sustain = cb.isSelected();                    cc.channel.controlChange(SUSTAIN, cc.sustain ? 127 : 0);                }            }        }        public void actionPerformed(ActionEvent e) {            JButton button = (JButton) e.getSource();            if (button.getText().startsWith("All")) {                for (int i = 0; i < channels.length; i++) {                    channels[i].channel.allNotesOff();                }                for (int i = 0; i < keys.size(); i++) {                    ((Key) keys.get(i)).setNoteState(OFF);                }            } else if (button.getText().startsWith("Record")) {                if (recordFrame != null) {                    recordFrame.toFront();                } else {                    recordFrame = new RecordFrame();                }            }        }    } // End class Controls    /**     * A frame that allows for midi capture & saving the captured data.     */    class RecordFrame extends JFrame implements ActionListener, MetaEventListener {        public JButton recordB, playB, saveB;        Vector tracks = new Vector();        DefaultListModel listModel = new DefaultListModel();        TableModel dataModel;        JTable table;        public RecordFrame() {            super("Midi Capture");            addWindowListener(new WindowAdapter() {                public void windowClosing(WindowEvent e) {recordFrame = null;}            });            sequencer.addMetaEventListener(this);            try {                sequence = new Sequence(Sequence.PPQ, 10);            } catch (Exception ex) { ex.printStackTrace(); }            JPanel p1 = new JPanel(new BorderLayout());            JPanel p2 = new JPanel();            p2.setBorder(new EmptyBorder(5,5,5,5));            p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));            recordB = createButton("Record", p2, true);            playB = createButton("Play", p2, false);            saveB = createButton("Save...", p2, false);            getContentPane().add("North", p2);            final String[] names = { "Channel #", "Instrument" };                dataModel = new AbstractTableModel() {                public int getColumnCount() { return names.length; }                public int getRowCount() { return tracks.size();}                public Object getValueAt(int row, int col) {                     if (col == 0) {                        return ((TrackData) tracks.get(row)).chanNum;                    } else if (col == 1) {                        return ((TrackData) tracks.get(row)).name;                    }                     return null;                }                public String getColumnName(int col) {return names[col]; }                public Class getColumnClass(int c) {                    return getValueAt(0, c).getClass();                }                public boolean isCellEditable(int row, int col) {                    return false;                }                public void setValueAt(Object val, int row, int col) {                     if (col == 0) {                        ((TrackData) tracks.get(row)).chanNum = (Integer) val;                    } else if (col == 1) {                        ((TrackData) tracks.get(row)).name = (String) val;                    }                 }            };                table = new JTable(dataModel);            TableColumn col = table.getColumn("Channel #");            col.setMaxWidth(65);            table.sizeColumnsToFit(0);                    JScrollPane scrollPane = new JScrollPane(table);            EmptyBorder eb = new EmptyBorder(0,5,5,5);            scrollPane.setBorder(new CompoundBorder(eb,new EtchedBorder()));	    getContentPane().add("Center", scrollPane);	    pack();            Dimension d = Toolkit.getDefaultToolkit().getScreenSize();            int w = 210;            int h = 160;            setLocation(d.width/2 - w/2, d.height/2 - h/2);            setSize(w, h);	    setVisible(true);        }        public JButton createButton(String name, JPanel p, boolean state) {            JButton b = new JButton(name);            b.setFont(new Font("serif", Font.PLAIN, 10));            b.setEnabled(state);            b.addActionListener(this);            p.add(b);            return b;        }        public void actionPerformed(ActionEvent e) {            JButton button = (JButton) e.getSource();            if (button.equals(recordB)) {                record = recordB.getText().startsWith("Record");                if (record) {                    track = sequence.createTrack();                    startTime = System.currentTimeMillis();                    // add a program change right at the beginning of                     // the track for the current instrument                    createShortEvent(PROGRAM,cc.col*8+cc.row);                    recordB.setText("Stop");                    playB.setEnabled(false);                    saveB.setEnabled(false);                } else {                    String name = null;                    if (instruments != null) {                        name = instruments[cc.col*8+cc.row].getName();                    } else {                        name = Integer.toString(cc.col*8+cc.row);                    }                    tracks.add(new TrackData(cc.num+1, name, track));                     table.tableChanged(new TableModelEvent(dataModel));                    recordB.setText("Record");                    playB.setEnabled(true);                    saveB.setEnabled(true);                }             } else if (button.equals(playB)) {                if (playB.getText().startsWith("Play")) {                    try {                        sequencer.open();                        sequencer.setSequence(sequence);                    } catch (Exception ex) { ex.printStackTrace(); }                    sequencer.start();                    playB.setText("Stop");                    recordB.setEnabled(false);                } else {                    sequencer.stop();                    playB.setText("Play");                    recordB.setEnabled(true);                }             } else if (button.equals(saveB)) {                try {                    File file = new File(System.getProperty("user.dir"));                    JFileChooser fc = new JFileChooser(file);                    fc.setFileFilter(new javax.swing.filechooser.FileFilter() {                        public boolean accept(File f) {                            if (f.isDirectory()) {                                return true;                            }                            return false;                        }                        public String getDescription() {                            return "Save as .mid file.";                        }                    });                    if (fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {                        saveMidiFile(fc.getSelectedFile());                    }                } catch (SecurityException ex) {                     //JavaSound.showInfoDialog(); remove by wangbo                    ex.printStackTrace();                } catch (Exception ex) {                     ex.printStackTrace();                }            }        }        public void meta(MetaMessage message) {            if (message.getType() == 47) {  // 47 is end of track                playB.setText("Play");                recordB.setEnabled(true);            }        }        public void saveMidiFile(File file) {            try {                int[] fileTypes = MidiSystem.getMidiFileTypes(sequence);                if (fileTypes.length == 0) {                    System.out.println("Can't save sequence");                } else {                    if (MidiSystem.write(sequence, fileTypes[0], file) == -1) {                        throw new IOException("Problems writing to file");                    }                 }            } catch (SecurityException ex) {                 //JavaSound.showInfoDialog(); remove by wangbo            } catch (Exception ex) {                 ex.printStackTrace();             }        }        class TrackData extends Object {            Integer chanNum; String name; Track track;            public TrackData(int chanNum, String name, Track track) {                this.chanNum = new Integer(chanNum);                this.name = name;                this.track = track;            }        } // End class TrackData    } // End class RecordFrame    public static void main(String args[]) {        final MidiSynth midiSynth = new MidiSynth();        midiSynth.open();        JFrame f = new JFrame("Midi Synthesizer");        f.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {System.exit(0);}        });        f.getContentPane().add("Center", midiSynth);        f.pack();        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        int w = 760;        int h = 470;        f.setLocation(screenSize.width/2 - w/2, screenSize.height/2 - h/2);        f.setSize(w, h);        f.setVisible(true);    }} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆精品在线| 亚洲一区影音先锋| 欧美色成人综合| 久久国产夜色精品鲁鲁99| 国产精品视频免费看| 欧美日韩一区二区三区四区五区 | 国产福利一区二区三区在线视频| 综合久久国产九一剧情麻豆| 日韩午夜av电影| 91亚洲大成网污www| 久久精品国产亚洲一区二区三区| 国产精品福利影院| 精品国产伦一区二区三区观看方式| 一本久道久久综合中文字幕| 国产一区欧美日韩| 日韩av电影免费观看高清完整版| 国产精品久久久一本精品| 日韩欧美激情在线| 欧美日韩精品二区第二页| 94-欧美-setu| 国产不卡在线视频| 精品亚洲欧美一区| 免费看黄色91| 午夜精品福利视频网站| 亚洲天堂免费看| 中文字幕精品在线不卡| 亚洲高清不卡在线观看| 日本一区二区成人| 久久久久亚洲综合| 欧美成人性福生活免费看| 欧美高清视频www夜色资源网| 91在线一区二区三区| 国产精品影音先锋| 国产中文一区二区三区| 日本伊人午夜精品| 视频一区二区欧美| 亚洲国产视频a| 一区二区三区精品视频| 亚洲另类中文字| 亚洲男人天堂av网| 亚洲乱码日产精品bd| 中文字幕日韩av资源站| 国产精品国产三级国产三级人妇| 欧美经典三级视频一区二区三区| 2023国产精华国产精品| 久久先锋影音av鲁色资源网| 精品久久久久久久久久久久包黑料| 欧美一区二区三区思思人| 91精品蜜臀在线一区尤物| 在线成人午夜影院| 一本色道久久加勒比精品 | 午夜精品久久久久久| 国产精品久久毛片| 亚洲蜜臀av乱码久久精品| 亚洲图片另类小说| 一区二区三区精品在线| 亚洲国产欧美一区二区三区丁香婷| 亚洲最快最全在线视频| 亚洲综合免费观看高清完整版| 悠悠色在线精品| 午夜欧美大尺度福利影院在线看| 丝袜诱惑制服诱惑色一区在线观看 | 91精品国产手机| 日韩一区二区不卡| 久久伊人蜜桃av一区二区| 国产日本亚洲高清| 亚洲欧美另类综合偷拍| 无吗不卡中文字幕| 精品一区二区在线看| 国产不卡在线播放| 91麻豆免费观看| 欧美一区二区在线观看| 久久蜜桃av一区精品变态类天堂| 国产精品乱码人人做人人爱| 亚洲精品一二三四区| 日韩精品成人一区二区三区| 国精产品一区一区三区mba视频| 国产成人啪午夜精品网站男同| 麻豆精品国产传媒mv男同| 亚洲丝袜另类动漫二区| 一级中文字幕一区二区| 黄页视频在线91| 欧美日韩一区中文字幕| 国产精品久久久久久久蜜臀 | 欧美性videosxxxxx| 久久久三级国产网站| 亚洲成av人片在线观看无码| 国产a级毛片一区| 欧美一区二区高清| 亚洲成人av中文| 欧美午夜理伦三级在线观看| 国产精品国产三级国产有无不卡| 国产成人免费在线| 国产亚洲一区二区三区在线观看| 青青草国产成人av片免费| 欧美三级韩国三级日本三斤| 亚洲欧美偷拍另类a∨色屁股| 99精品黄色片免费大全| 国产精品丝袜黑色高跟| 91在线观看美女| 伊人开心综合网| 欧美亚洲国产bt| 日韩成人一区二区| 久久亚洲捆绑美女| 成人av小说网| 亚洲一二三专区| 日韩一区二区免费在线观看| 国产一区二区三区视频在线播放| 精品福利av导航| 成人激情视频网站| 一区二区三国产精华液| 制服丝袜激情欧洲亚洲| 欧美亚洲一区二区在线观看| 亚洲不卡av一区二区三区| 精品国产一区二区三区久久久蜜月| 国产一区久久久| 亚洲在线免费播放| 欧美一级久久久久久久大片| 国产成人亚洲综合a∨猫咪| 亚洲婷婷在线视频| 精品国产一区二区精华| 91福利视频在线| 国产主播一区二区三区| 亚洲一区二区三区视频在线| 精品国产乱码久久久久久久| 91亚洲精品久久久蜜桃网站| 国产美女在线观看一区| 日韩精品一二区| 亚洲一区免费在线观看| 国产嫩草影院久久久久| 日韩欧美aaaaaa| 欧美日韩视频一区二区| 色综合天天综合在线视频| 国产麻豆精品视频| 久久99久久精品| 亚洲一级二级在线| 亚洲国产一区二区三区青草影视| 中日韩免费视频中文字幕| 久久先锋资源网| 久久婷婷成人综合色| 日韩一区二区精品葵司在线| 日韩一区二区三区电影| 欧美日韩一级片在线观看| 欧美午夜在线观看| 91在线国产观看| 99re8在线精品视频免费播放| 不卡一卡二卡三乱码免费网站| 紧缚捆绑精品一区二区| 韩国欧美国产1区| 国产精华液一区二区三区| 激情综合色播激情啊| 国产精品主播直播| 不卡的看片网站| 日本电影欧美片| 777久久久精品| 精品久久久久久亚洲综合网| 日韩免费高清av| 中文字幕欧美激情一区| 亚洲永久免费av| 狠狠色丁香婷婷综合| 99久久精品一区| 亚洲精品一区二区三区99| 亚洲五码中文字幕| 国产精一品亚洲二区在线视频| 懂色一区二区三区免费观看| 在线欧美一区二区| 精品国精品自拍自在线| 亚洲欧洲美洲综合色网| 人妖欧美一区二区| 成人永久免费视频| 91精品国产欧美一区二区18| 国产精品久久久久aaaa| 日韩国产在线观看一区| 91污片在线观看| 亚洲精品一区二区三区香蕉| 亚洲美女屁股眼交| 国产一区二区主播在线| 欧美日韩黄色影视| 国产精品不卡一区| 国产精品资源在线| 欧美大片一区二区三区| 婷婷开心激情综合| 97精品视频在线观看自产线路二| 日韩欧美三级在线| 婷婷综合在线观看| 欧美日韩视频一区二区| 亚洲成a人v欧美综合天堂| 91欧美激情一区二区三区成人| 国产婷婷色一区二区三区四区| 蜜桃一区二区三区在线| 欧美美女激情18p| 亚洲成av人片在线观看无码| 欧美日韩中文一区| 亚洲综合视频在线观看| 在线精品视频一区二区| 亚洲不卡av一区二区三区| 欧美人伦禁忌dvd放荡欲情| 亚洲va欧美va人人爽| 欧美一区二区三区四区高清| 激情综合色播激情啊|