From 7e4a687ccbb528a4383d7feae3ac4aa854bc5bad Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Tue, 13 May 2003 22:28:53 +0000 Subject: [PATCH] speed improvements.. I think --- MooNoteElement.java | 57 +++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/MooNoteElement.java b/MooNoteElement.java index 8e5a3bd..65ed0ba 100644 --- a/MooNoteElement.java +++ b/MooNoteElement.java @@ -16,6 +16,8 @@ public class MooNoteElement extends JPanel { private boolean selected; private Rectangle pitchRect, veloRect; public static final Color bgColor = new Color(160, 218, 255); + private String notePitch; + private String noteVelocity; /** * Creates a new note element. @@ -24,6 +26,7 @@ public class MooNoteElement extends JPanel { */ public MooNoteElement (MooNote mn) { note = mn; + calculateString(); columns = mn.getDuration() / (Moosique.getSequence().getResolution() / 4); setBorder(BorderFactory.createLineBorder(Color.black)); setBackground(bgColor); @@ -55,28 +58,9 @@ public class MooNoteElement extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); - if (note == null || !(g instanceof Graphics2D)) return; + if (!(g instanceof Graphics2D)) return; Graphics2D g2 = (Graphics2D)g; g2.setFont(new Font("Helvetica", Font.PLAIN, 8)); - - String n = ""; - int pitch = note.getPitch(); - switch (pitch % 12) { - case 0: n = "C"; break; - case 1: n = "C#"; break; - case 2: n = "D"; break; - case 3: n = "D#"; break; - case 4: n = "E"; break; - case 5: n = "F"; break; - case 6: n = "F#"; break; - case 7: n = "G"; break; - case 8: n = "G#"; break; - case 9: n = "A"; break; - case 10: n = "A#"; break; - case 11: n = "B"; break; - } - n += pitch / 12; - /* switch(columns) { case 0: @@ -85,8 +69,33 @@ public class MooNoteElement extends JPanel { } */ - g2.drawString(n, 1, 9); - g2.drawString("" + note.getVelocity(), 21, 9); + g2.drawString(notePitch, 1, 9); + g2.drawString("" + noteVelocity, 21, 9); + } + + protected void calculateString(){ + + noteVelocity = ""; + notePitch = ""; + if(note == null) return; + + int pitch = note.getPitch(); + switch (pitch % 12) { + case 0: notePitch = "C"; break; + case 1: notePitch = "C#"; break; + case 2: notePitch = "D"; break; + case 3: notePitch = "D#"; break; + case 4: notePitch = "E"; break; + case 5: notePitch = "F"; break; + case 6: notePitch = "F#"; break; + case 7: notePitch = "G"; break; + case 8: notePitch = "G#"; break; + case 9: notePitch = "A"; break; + case 10: notePitch = "A#"; break; + case 11: notePitch = "B"; break; + } + notePitch += pitch / 12; + noteVelocity = ""+note.getVelocity(); } class MAdapter extends MouseAdapter { @@ -97,12 +106,14 @@ public class MooNoteElement extends JPanel { } else if (SwingUtilities.isLeftMouseButton(e)) { note.setPitch(note.getPitch() - 1); } + calculateString(); } else if (veloRect.contains(e.getPoint())) { if (SwingUtilities.isRightMouseButton(e)) { note.setVelocity(note.getVelocity() + 1); } else if (SwingUtilities.isLeftMouseButton(e)) { note.setVelocity(note.getVelocity() - 1); } + calculateString(); } e.getComponent().repaint(); } @@ -111,4 +122,4 @@ public class MooNoteElement extends JPanel { public void mouseReleased(MouseEvent e) {} } -} \ No newline at end of file +} -- 2.39.2