]> ruin.nu Git - moosique.git/blobdiff - MooViewCounter.java
nu är den klar
[moosique.git] / MooViewCounter.java
index aea79444a2e36e44b5255e1598d59f9a4d192b5e..3c766014c1f203971e9513883c5139654f80f141 100644 (file)
@@ -1,4 +1,5 @@
 import javax.swing.*;
+import java.awt.*;
 
 /**
  * 
@@ -7,12 +8,55 @@ import javax.swing.*;
  * @version 1
  */
  
-public class MooViewCounter {
+public class MooViewCounter extends JPanel {
+
+       private int timeSig1, timeSig2, measure, halfBeat, beat, halfNote;
 
        /** 
         * Creates 
         */
-       public MooViewCounter () {
+       public MooViewCounter (int ts1, int ts2) {
+               timeSig1 = ts1;
+               timeSig2 = ts2;
+               setBackground(Color.black);
+               setPreferredSize(new Dimension(35,200*10));
+               
+               switch (timeSig2) {
+                       case  16: measure = timeSig1;  
+                       break;
+                       case  8: measure = timeSig1 * 2;
+                                        halfBeat = measure / timeSig1;
+                       break;
+                       case  4: measure = timeSig1 * 4;
+                                        beat = measure / timeSig1;
+                                        halfBeat = beat / 2;     
+                       break;
+                       case  2: measure = timeSig1 * 8; 
+                                        halfNote = measure / timeSig1;
+                                        beat = halfNote / 2;
+                                        halfBeat = beat / 2;
+                       break;
+                       case  1: measure = timeSig1 * 16;
+                                    halfNote = measure/2;
+                                        beat = halfNote/2;
+                                        halfBeat = beat/2;
+                       break;
+               }
+               
+       }
 
+       public void paintComponent(Graphics g) {
+               super.paintComponent(g);
+               if (!(g instanceof Graphics2D)) return;
+               Graphics2D g2 = (Graphics2D)g;
+               g2.setColor(Color.white);
+               for (int c = 0; c < 200; c++) {
+                       g2.drawLine(0,c*10,5,c*10);                                                     // 1/16
+                       g2.drawLine(0,c*10*halfBeat,10,c*10*halfBeat);                  // 1/8
+                       g2.drawLine(0,c*10*beat,15,c*10*beat);                                  // 1/4
+                       g2.drawLine(0,c*10*halfNote,20,c*10*halfNote);                  // 1/2
+                       g2.drawLine(0,c*10*measure,30,c*10*measure);                    // 1/1
+                       
+               }
        }
-}
+}
\ No newline at end of file