]> ruin.nu Git - moosique.git/blob - MooViewCounter.java
----------------------------------------------------------------------
[moosique.git] / MooViewCounter.java
1 import javax.swing.*;
2 import java.awt.*;
3
4 /**
5  * 
6  * 
7  * @author  Andersson, Andreen, Lanneskog, Pehrson
8  * @version 1
9  */
10  
11 public class MooViewCounter extends JPanel {
12
13         private int timeSig1, timeSig2, measure, halfBeat, beat, halfNote;
14
15         /** 
16          * Creates 
17          */
18
19         public MooViewCounter (int ts1, int ts2) {
20                 timeSig1 = ts1;
21                 timeSig2 = ts2;
22                 setBackground(Color.black);
23                 setPreferredSize(new Dimension(35,200*10));
24                 
25                 switch (timeSig2) {
26                         case  16: measure = timeSig1;  
27                         break;
28                         case  8: measure = timeSig1 * 2;
29                                          halfBeat = measure / timeSig1;
30                         break;
31                         case  4: measure = timeSig1 * 4;
32                                          beat = measure / timeSig1;
33                                          halfBeat = beat / 2;     
34                         break;
35                         case  2: measure = timeSig1 * 8; 
36                                          halfNote = measure / timeSig1;
37                                          beat = halfNote / 2;
38                                          halfBeat = beat / 2;
39                         break;
40                         case  1: measure = timeSig1 * 16;
41                                      halfNote = measure/2;
42                                          beat = halfNote/2;
43                                          halfBeat = beat/2;
44                         break;
45                 }
46                 
47         }
48         public void paintComponent(Graphics g) {
49                 super.paintComponent(g);
50                 setBackground(Color.black);
51
52                 if (!(g instanceof Graphics2D)) return;
53                 Graphics2D g2 = (Graphics2D)g;
54
55                 setPreferredSize(new Dimension(50,200*10));
56                 g2.setColor(Color.white);
57                 for (int c = 0; c < 200; c++) {
58                         g2.drawLine(0,c*10,5,c*10);                                     // 1/16
59                         g2.drawLine(0,c*10*halfBeat,10,c*10*halfBeat);                  // 1/8
60                         g2.drawLine(0,c*10*beat,15,c*10*beat);                          // 1/4
61                         g2.drawLine(0,c*10*halfNote,20,c*10*halfNote);                  // 1/2
62                         g2.drawLine(0,c*10*measure,30,c*10*measure);                    // 1/1
63                         
64                 }
65         }
66 }