import javax.swing.*;
+import javax.swing.filechooser.*;
import java.awt.event.*;
-import javax.swing.JComponent.*;
-import javax.swing.filechooser.FileFilter;
+import java.io.*;
-public class MooMenu extends JMenuBar implements ActionListener{
-
- // Ett något smidigare sätt, kanske.. / EP
+public class MooMenu extends JMenuBar implements ActionListener {
+ private JMenu file, edit, playback, track, help;
+
public MooMenu() {
file = makeMenu("File", KeyEvent.VK_F);
add(file);
} else if (command == "Open...") {
JFileChooser chooser = new JFileChooser();
- // här måste jag lägga till en filefilter
- // som bestämmer vilka filtyper som får öppnas
-
+ chooser.addChoosableFileFilter(new MidiFileFilter());
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
- }
+ }
} else if (command == "Save") {
} else if (command == "Save as...") {
JFileChooser chooser = new JFileChooser();
- // här måste jag lägga till en filefilter
- // som bestämmer vilka filtyper som får sparas
-
+ chooser.addChoosableFileFilter(new MidiFileFilter());
int returnVal = chooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
}
}
-
- private JMenu file;
- private JMenu edit;
- private JMenu playback;
- private JMenu track;
- private JMenu help;
+ class MidiFileFilter extends javax.swing.filechooser.FileFilter {
+ public boolean accept(File f) {
+ if(f != null) {
+ String extension = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase();
+ if (f.isDirectory() || extension == "mid") return true;
+ }
+ return false;
+ }
+
+ public String getDescription() {
+ return "MIDI files";
+ }
+ }
}