Commit d39b44da authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch14] Main code classes from book

parent d1ff8c31
Loading
Loading
Loading
Loading
+43 −0
Changes for src/main/java/ch14/MiniMusicPlayer1.java: 43 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.sound.midi.*;

public class MiniMusicPlayer1 {   
   
   public static void main(String[] args) {        

      try {

         Sequencer sequencer = MidiSystem.getSequencer();         
         sequencer.open();
        
         
         Sequence seq = new Sequence(Sequence.PPQ, 4);
         Track track = seq.createTrack();     
         
      for (int i = 5; i < 61; i+= 4) {
    

         track.add(makeEvent(144,1,i,100,i));
         track.add(makeEvent(128,1,i,100,i + 2));

       } // end loop
             
          sequencer.setSequence(seq);
          sequencer.setTempoInBPM(220);
          sequencer.start();
      } catch (Exception ex) {ex.printStackTrace();}
  } // close main


   public static MidiEvent makeEvent(int comd, int chan, int one, int two, int tick) {
          MidiEvent event = null;
          try {
            ShortMessage a = new ShortMessage();
            a.setMessage(comd, chan, one, two);
           event = new MidiEvent(a, tick);
            
          }catch(Exception e) { }
         return event;
       }
} // close class
 No newline at end of file
+51 −0
Changes for src/main/java/ch14/MiniMusicPlayer2.java: 51 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.sound.midi.*;
public class MiniMusicPlayer2 implements ControllerEventListener {   
       
     public static void main(String[] args) {
         MiniMusicPlayer2 mini = new MiniMusicPlayer2();
         mini.go();
     }   
   public void go() {         

      try {
         Sequencer sequencer = MidiSystem.getSequencer();         
         sequencer.open();

         int[] eventsIWant = {127};  
         sequencer.addControllerEventListener(this, eventsIWant);

         Sequence seq = new Sequence(Sequence.PPQ, 4);
         Track track = seq.createTrack();  

         for (int i = 5; i < 60; i+= 4) {
            track.add(makeEvent(144,1,i,100,i));

            track.add(makeEvent(176,1,127,0,i)); 

            track.add(makeEvent(128,1,i,100,i + 2));
         } // end loop

         sequencer.setSequence(seq);
         sequencer.setTempoInBPM(220);
         sequencer.start();
      } catch (Exception ex) {ex.printStackTrace();}
  } // close 


    public void controlChange(ShortMessage event) {
         System.out.println("la");         
    }

   public MidiEvent makeEvent(int comd, int chan, int one, int two, int tick) {
          MidiEvent event = null;
          try {
            ShortMessage a = new ShortMessage();
            a.setMessage(comd, chan, one, two);
            event = new MidiEvent(a, tick);
            
          }catch(Exception e) { }
         return event;
       }
} // close class
 No newline at end of file
+14 −0
Changes for src/main/java/ch14/MyDrawPanel.java: 14 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import java.awt.*;
import javax.swing.*;

class MyDrawPanel extends JPanel {
    
      public void paintComponent(Graphics g) {

         g.setColor(Color.orange);

         g.fillRect(20,50,100,100);
      }
}
 No newline at end of file
+20 −0
Changes for src/main/java/ch14/MyOuter.java: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

class MyOuter  {

   private int x;

   MyInner inner = new MyInner();

   public void doStuff() {
      inner.go();
    }

   
   class MyInner {
      void go() {
         x = 42;
       }
    } // close inner class

} // close outer class
+51 −0
Changes for src/main/java/ch14/SimpleAnimation.java: 51 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch14;

import javax.swing.*;
import java.awt.*;


public class SimpleAnimation {

    int x = 70;
    int y = 70;

    public static void main (String[] args) {
       SimpleAnimation gui = new SimpleAnimation ();
       gui.go();
   }

   public void go() {
       JFrame frame = new JFrame();
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       MyDrawPanel drawPanel = new MyDrawPanel();       

       frame.getContentPane().add(drawPanel);
       frame.setSize(300,300);
       frame.setVisible(true);


       for (int i = 0; i < 130; i++) {

          x++;
          y++;

          drawPanel.repaint();
  
          try {
            Thread.sleep(50);
          } catch(Exception ex) { }
       }
    
   }// close go() method


    class MyDrawPanel extends JPanel {
    
       public void paintComponent(Graphics g) {
          g.setColor(Color.green);
          g.fillOval(x,y,40,40);

       }
    } // close inner class
} // close outer class
 No newline at end of file
Loading