2 import java.awt.event.*;
3 import javax.swing.JComponent.*;
4 import javax.swing.filechooser.FileFilter;
6 public class MooMenu extends JMenuBar implements ActionListener{
8 // Ett något smidigare sätt, kanske.. / EP
11 file = makeMenu("File", KeyEvent.VK_F);
14 file.add(makeAccItem(file, "New", KeyEvent.VK_N));
15 file.add(makeAccItem(file, "Open...", KeyEvent.VK_O));
16 file.add(makeAccItem(file, "Save", KeyEvent.VK_S));
17 file.add(makeItem(file, "Save as..."));
18 file.add(makeAccItem(file, "Exit", KeyEvent.VK_Q));
20 edit = makeMenu("Edit", KeyEvent.VK_E);
23 edit.add(makeAccItem(edit, "Copy", KeyEvent.VK_C));
24 edit.add(makeAccItem(edit, "Cut", KeyEvent.VK_X));
25 edit.add(makeAccItem(edit, "Paste", KeyEvent.VK_V));
26 edit.add(makeAccItem(edit, "Select all", KeyEvent.VK_E));
27 edit.add(makeAccItem(edit, "Invert selection", KeyEvent.VK_I));
29 playback = makeMenu("Playback", KeyEvent.VK_P);
32 playback.add(makeAccItem(playback, "Play", KeyEvent.VK_SPACE));
33 playback.add(makeAccItem(playback, "Pause", KeyEvent.VK_SPACE));
34 playback.add(makeItem(playback, "Stop"));
35 playback.add(makeItem(playback, "Jump..."));
37 track = makeMenu("Track", KeyEvent.VK_T);
40 track.add(makeAccItem(track, "Add", KeyEvent.VK_A));
41 track.add(makeAccItem(track, "Delete", KeyEvent.VK_D));
42 track.add(makeAccItem(track, "Copy track", KeyEvent.VK_Y));
43 track.add(makeAccItem(track, "Move", KeyEvent.VK_M));
45 help = makeMenu("Help", KeyEvent.VK_P);
48 help.add(makeItem(help, "Contents"));
49 help.add(makeItem(help, "Getting started"));
50 help.add(makeItem(help, "About"));
53 private JMenu makeMenu(String name, int mnemonic) {
54 JMenu menu = new JMenu(name);
55 menu.setMnemonic(mnemonic);
59 private JMenuItem makeItem(JMenu menu, String name) {
60 JMenuItem item = new JMenuItem(name);
61 item.addActionListener(this);
66 private JMenuItem makeAccItem(JMenu menu, String name, int key) {
67 JMenuItem item = new JMenuItem(name);
68 item.setAccelerator(KeyStroke.getKeyStroke(key, ActionEvent.CTRL_MASK));
69 item.addActionListener(this);
74 public void actionPerformed(ActionEvent e) {
75 String command = e.getActionCommand();
77 if(command == "New") {
79 } else if (command == "Open...") {
81 JFileChooser chooser = new JFileChooser();
82 // här måste jag lägga till en filefilter
83 // som bestämmer vilka filtyper som får öppnas
85 int returnVal = chooser.showOpenDialog(this);
86 if(returnVal == JFileChooser.APPROVE_OPTION) {
87 System.out.println("You chose to open this file: " +
88 chooser.getSelectedFile().getName());
91 } else if (command == "Save") {
93 } else if (command == "Save as...") {
95 JFileChooser chooser = new JFileChooser();
96 // här måste jag lägga till en filefilter
97 // som bestämmer vilka filtyper som får sparas
99 int returnVal = chooser.showSaveDialog(this);
100 if(returnVal == JFileChooser.APPROVE_OPTION) {
101 System.out.println("You chose to open this file: " +
102 chooser.getSelectedFile().getName());
105 } else if (command == "Exit") {
107 } else if (command == "Copy") {
109 } else if (command == "Cut") {
111 } else if (command == "Paste") {
113 } else if (command == "Select all") {
115 } else if (command == "Invert selection") {
117 } else if (command == "Play") {
118 JOptionPane.showMessageDialog(null, "playing");
120 } else if (command == "Pause") {
122 } else if (command == "Stop") {
124 } else if (command == "Jump...") {
126 } else if (command == "Add") {
128 } else if (command == "Delete") {
130 } else if (command == "Copy track") {
132 } else if (command == "Move") {
134 } else if (command == "Contents") {
135 // contents to be filled in
136 JOptionPane.showMessageDialog(this, "här kommer contents komma");
138 } else if (command == "Getting started") {
139 // getting started to be filled in
140 JOptionPane.showMessageDialog(null, "här kommer getting started komma");
142 } else if (command == "About") {
143 // about to be filled in
144 JOptionPane.showMessageDialog(null, "här kommer about att komma");
152 private JMenu playback;