X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooViewCounter.java;h=3c766014c1f203971e9513883c5139654f80f141;hb=0e48363a96ebd7c8c7f142daa38568da3e64facc;hp=45a9280fff5fed228eb3073063ef74dbc0b3ae99;hpb=1e06fcb34d222ef2017d4adf888568184dd63ab9;p=moosique.git diff --git a/MooViewCounter.java b/MooViewCounter.java index 45a9280..3c76601 100644 --- a/MooViewCounter.java +++ b/MooViewCounter.java @@ -1,4 +1,5 @@ import javax.swing.*; +import java.awt.*; /** * @@ -7,19 +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 () { - + 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