Ich bekomme plötzlich so einen Fehler, gestern ist das noch nicht passiert. Außerdem stört mich, das zu meiner Haupklasse MuscodGui.class immer eine Class-file MuscodGui$1.class angelegt wird.
Hier der Code:
MuscodGui.java
MenuBar.java
Hier der Code:
MuscodGui.java
Code:
package muscodgui;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import javax.swing.JSplitPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Event;
import java.awt.Toolkit;
import java.awt.BorderLayout;
import javax.swing.JTree;
import javax.swing.JDesktopPane;
import javax.swing.JLabel;
public class MuscodGui extends JFrame implements ActionListener {
private MenuBar menuBar;
private JSplitPane splitPane;
public static void main(String[] args) {
MuscodGui gui = new MuscodGui();
}
public MuscodGui() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/* add menu */
menuBar = new MenuBar(this);
setJMenuBar(menuBar);
/* add splitpane */
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
new JTree(),new JDesktopPane().add(new JLabel("Text")));
getContentPane().add(splitPane, BorderLayout.CENTER);
addWindowListener(new WindowAdapter() {
public void WindowClosing(WindowEvent e) {
System.exit(0);
}
});
setLocation(
(Toolkit.getDefaultToolkit().getScreenSize().width - 800)/2,
(Toolkit.getDefaultToolkit().getScreenSize().height - 600)/2
);
setSize(800, 600);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
String cmd = e.getActionCommand();
if (obj instanceof JMenuItem) {
System.out.println("Menu: " + cmd);
if (cmd.equals("new")) {
/* create file */
}
if (cmd.equals("open")) {
/* open file */
}
if (cmd.equals("save")) {
/* save file */
}
if (cmd.equals("saveAs")) {
/* save file as */
}
if (cmd.equals("exit")) {
System.exit(0);
}
}
}
}
MenuBar.java
Code:
package muscodgui;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.Event;
class MenuBar extends JMenuBar {
private ActionListener listener;
private JMenu m;
private JMenuItem mi;
public MenuBar(ActionListener listener) {
this.listener = listener;
/* menu file */
m = new JMenu("Datei");
addItem(m, "Neu", "new", KeyEvent.VK_N);
addItem(m, "Öffnen...", "open", KeyEvent.VK_O);
addItem(m, "Save", "save", KeyEvent.VK_S);
addItem(m, "Save as...", "saveAs", KeyEvent.VK_U);
m.addSeparator();
addItem(m, "Exit", "exit", KeyEvent.VK_Q);
add(m);
/* menu edit */
m = new JMenu("Bearbeiten");
addItem(m, "Ausschneiden", "cut", KeyEvent.VK_X);
addItem(m, "Kopieren", "copy", KeyEvent.VK_C);
addItem(m, "Einfügen", "paste", KeyEvent.VK_P);
add(m);
}
/* adds items */
private void addItem(JMenu m, String name, String cmd, int code) {
JMenuItem mi = new JMenuItem(name);
mi.setActionCommand(cmd);
if (code != -1) { /* code for no code is -1 */
mi.setAccelerator(KeyStroke.getKeyStroke(code, Event.CTRL_MASK));
}
mi.addActionListener(listener);
m.add(mi);
}
}