Hallo Javaprofis,
ich versuche seit einigen Wochen in die Java-Welt einzusteigen und habe jetzt ein Problem mit der Erstellung eines Menüs. So weit bin ich gekommen

Mein Problem:
- Mit Menüpunkt "File" inkl. den Menuitem funktioniert es einwandfrei.
- Wenn ich auf Option klicke, soll wie bei "reset" auch eine Aktion ausgeübt werden. Prinzipiell funktioniert es auch, aber ich bekomme es nicht hin, dass der nächste Menüpunkt "Setting" direkt neben dem Menüpunkt "Optionen" angezeigt wird, sondern mit einer großen Lücke (sie rotes Oval). Der ganze Bereich löst auch die entsprechende Aktion aus, wenn ich draufklicke.
Mein Code sieht wie folgt aus:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Menu_Beispiel extends JFrame implements ActionListener {
JMenuBar mbar;
JMenu file, help, setting;
JMenuItem submit, exit, about, Reset, option;
Menu_Beispiel() {
setTitle("ActionListener Beispiel");
setSize(500, 200);
mbar = new JMenuBar();
setJMenuBar(mbar);
file = new JMenu("File");
setting = new JMenu("Setting");
help = new JMenu("Help");
option = new JMenuItem("Option");
about = new JMenuItem("About");
Reset = new JMenuItem("reset");
submit = new JMenuItem("Submit");
exit = new JMenuItem("Exit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("submit");
}
});
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("exit");
}
});
option.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("option");
}
});
about.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("about");
}
});
Reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Reset");
}
});
file.add(Reset);
file.add(submit);
file.addSeparator();
file.add(exit);
mbar.add(file);
mbar.add(option);
mbar.add(setting);
mbar.add(help);
mbar.add(about);
show();
MyWindowAdapter mwa = new MyWindowAdapter();
addWindowListener(mwa);
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public static void main(String args[]) {
Menu_Beispiel ob = new Menu_Beispiel();
}
}
Kann mir jemand sagen, was ich falsch mache oder was ich machen muss, um die Lücke zwischen Option und Setting zu schließen?
Danke für eure Hilfe.
ich versuche seit einigen Wochen in die Java-Welt einzusteigen und habe jetzt ein Problem mit der Erstellung eines Menüs. So weit bin ich gekommen

Mein Problem:
- Mit Menüpunkt "File" inkl. den Menuitem funktioniert es einwandfrei.
- Wenn ich auf Option klicke, soll wie bei "reset" auch eine Aktion ausgeübt werden. Prinzipiell funktioniert es auch, aber ich bekomme es nicht hin, dass der nächste Menüpunkt "Setting" direkt neben dem Menüpunkt "Optionen" angezeigt wird, sondern mit einer großen Lücke (sie rotes Oval). Der ganze Bereich löst auch die entsprechende Aktion aus, wenn ich draufklicke.
Mein Code sieht wie folgt aus:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Menu_Beispiel extends JFrame implements ActionListener {
JMenuBar mbar;
JMenu file, help, setting;
JMenuItem submit, exit, about, Reset, option;
Menu_Beispiel() {
setTitle("ActionListener Beispiel");
setSize(500, 200);
mbar = new JMenuBar();
setJMenuBar(mbar);
file = new JMenu("File");
setting = new JMenu("Setting");
help = new JMenu("Help");
option = new JMenuItem("Option");
about = new JMenuItem("About");
Reset = new JMenuItem("reset");
submit = new JMenuItem("Submit");
exit = new JMenuItem("Exit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("submit");
}
});
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("exit");
}
});
option.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("option");
}
});
about.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("about");
}
});
Reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Reset");
}
});
file.add(Reset);
file.add(submit);
file.addSeparator();
file.add(exit);
mbar.add(file);
mbar.add(option);
mbar.add(setting);
mbar.add(help);
mbar.add(about);
show();
MyWindowAdapter mwa = new MyWindowAdapter();
addWindowListener(mwa);
}
class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public static void main(String args[]) {
Menu_Beispiel ob = new Menu_Beispiel();
}
}
Kann mir jemand sagen, was ich falsch mache oder was ich machen muss, um die Lücke zwischen Option und Setting zu schließen?
Danke für eure Hilfe.