1 import javax.sound.midi.*;
4 import java.awt.event.*;
7 * Moosique's graphical user interface.
9 * @author Mikael Andreen
12 public class MooGUI extends JFrame {
16 private JPanel trackPanel;
17 private MooTrackView[] trackViews;
18 private JLabel statusBar;
20 public static Font standardFont = new Font("Helvetica", Font.PLAIN, 10);
25 public MooGUI(Sequence seq) {
30 Container pane = getContentPane();
31 pane.setLayout(new BorderLayout());
34 setJMenuBar(new MooMenu());
37 pane.add(new MooToolbar(), BorderLayout.NORTH);
40 trackPanel = new JPanel(true);
42 pane.add(trackPanel, BorderLayout.CENTER);
45 statusBar = new JLabel("Welcome to Moosique!", JLabel.CENTER);
46 pane.add(statusBar, BorderLayout.SOUTH);
48 addWindowListener(new MooGUICloser());
50 Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize();
51 setSize(bounds.width,bounds.height - 60);
53 // setResizable(false);
54 setBackground(Color.white);
60 * Changes the sequence of the GUI.
61 * @param sequence the MIDI sequence to visualize
63 public void setSequence(Sequence sequence) {
69 * Shows the given message in the status bar.
70 * @param text the message to show
72 public void setStatus(String text) {
73 statusBar.setText(text);
76 private void createTrackViews() {
77 trackPanel.removeAll();
78 Track[] tracks = seq.getTracks();
79 trackPanel.setLayout(new GridLayout(1, tracks.length));
80 trackViews = new MooTrackView[tracks.length];
81 for (int i = 0; i < tracks.length; i++) {
82 trackViews[i] = new MooTrackView(tracks[i]);
83 trackPanel.add(new MooTrackView(tracks[i]));
85 trackPanel.validate();
88 class MooGUICloser extends WindowAdapter {
89 public void windowClosing(WindowEvent e) {Moosique.quit();}