3 import java.awt.event.*;
4 import javax.sound.midi.*;
7 * Graphical representation of a MIDI track.
9 * @author Andersson , Andreen, Lanneskog, Pehrson
13 public class MooTrackView extends JPanel implements ActionListener {
15 private MooTrackTitle title;
16 private NoteArea notes;
17 private Rectangle box;
18 private JPopupMenu popup;
19 private JMenuItem menuItem;
21 public MooTrackView (Track track) {
22 setPreferredSize(new Dimension(200, 200));
23 setLayout(new BorderLayout());
24 this.setBorder(BorderFactory.createLineBorder(Color.black));
26 title = new MooTrackTitle(track);
27 title.setBorder(BorderFactory.createLineBorder(Color.black));
28 add(title, BorderLayout.NORTH);
30 notes = new NoteArea();
31 notes.setBackground(Color.white);
32 notes.setBorder(BorderFactory.createLineBorder(Color.black));
34 popup = new JPopupMenu();
35 menuItem = new JMenuItem("Add...");
36 menuItem.addActionListener(this);
38 menuItem = new JMenuItem("Preferences...");
39 menuItem.addActionListener(this);
42 notes.addMouseListener(new PopupListener());
43 add(notes, BorderLayout.CENTER);
46 public void actionPerformed(ActionEvent e) {}
48 class NoteArea extends JPanel {
49 public void RectanglePanel() {
50 setPreferredSize(new Dimension(20, 20));
53 public void paintComponent(Graphics g) {
54 super.paintComponent(g);
55 Graphics2D g2 = (Graphics2D)g;
56 for (int c = 0; c < 1000; c += 20) {
58 for (r = 0; r < 200; r += 20) {
59 box = new Rectangle(r, c, 20, 20);
60 g2.setColor(Color.gray);
67 class PopupListener extends MouseAdapter {
68 public void mousePressed(MouseEvent e) {
72 public void mouseReleased(MouseEvent e) {
76 private void maybeShowPopup(MouseEvent e) {
77 if (e.isPopupTrigger()) {
78 popup.show(e.getComponent(), e.getX(), e.getY());