class NoteArea extends JPanel {
+ public static final int NOTE_SIZE = 20;
+
public NoteArea(Track track) {
MidiEvent note;
+ MooNoteElement elem;
+ boolean isOccupied;
+ int x, y, height;
+ Insets insets = getInsets();
for (int i = 0; i < track.size(); i++) {
note = track.get(i);
if (note instanceof MooNote) {
- add(new MooNoteElement((MooNote)note));
+ MooNote mn = (MooNote)note;
+ elem = new MooNoteElement(mn);
+ add(elem);
+ x = insets.left;
+ y = insets.top + (int)(mn.getTick() / 24) * NOTE_SIZE;
+ height = (mn.getDuration() / 24) * NOTE_SIZE;
+ while(findComponentAt(x, y) != this || findComponentAt(x, y + height - 1) != this) x += NOTE_SIZE;
+ elem.setBounds(x, y, NOTE_SIZE, height);
}
}
- validate();
}
public void paintComponent(Graphics g) {
}
}
}
-}
\ No newline at end of file
+}