Posted: Dezember 29th, 2008 | Filed under: Programmieren | Tags: Beispiel, Java, JFrame JMenuBar, JMenuBar, JMenuBar Beispiel, JMenuBar Example, JScrollPane, MenuBar, Menüleiste, Tutorial | 11 Comments »
Hallo Leute, heute wollte ich euch zeigen wie man eine Menüleiste in Java realisiert.
Dazu erstellen wir ein JFrame und fügen diesem eine JMenuBar hinzu. Die JMenuBar gibt das Rahmenwerk für das jeweilige JMenu. Ein JMenu repräsentiert ein Navigationspunkt. Um Menüunterpunkte zu erzeugen fügen wir unserem JMenu ein JMenuItem hinzu. So einfach geht’s.
JMenuBar -> JMenu (z.B.: Hilfe) -> JMenuItem (z.B.: Über)
Am Besten ihr schaut euch den folgenden Quellcode an.
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar; import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class JMenuBarBeispiel implements ActionListener {
JFrame applikation;
Container container;
// Menüleiste
JMenuBar menueLeiste;
// Menüleiste Elemente
JMenu datei;
JMenu hilfe;
// Datei JMenuItem oeffnen;
JMenuItem beenden;
// Hilfe JMenuItem faq;
JMenuItem about;
// Textfeld
JTextArea textarea;
public JMenuBarBeispiel() {
applikation = new JFrame("JMenuBar Beispiel");
container = applikation.getContentPane();
// Menüleiste erzeugen
menueLeiste = new JMenuBar();
// Menüelemente erzeugen
datei = new JMenu("Datei"); hilfe = new JMenu("Hilfe");
// Untermenüelemente erzeugen
oeffnen = new JMenuItem("öffnen");
oeffnen.addActionListener(this);
beenden = new JMenuItem("beenden");
beenden.addActionListener(this);
faq = new JMenuItem("F.A.Q.");
faq.addActionListener(this);
about = new JMenuItem("Über");
about.addActionListener(this);
// Menüelemente hinzufügen
menueLeiste.add(datei);
menueLeiste.add(hilfe);
// Untermenüelemente hinzufügen
datei.add(oeffnen);
datei.add(beenden);
hilfe.add(faq);
hilfe.add(about);
// Textfeld erzeugen
textarea = new JTextArea();
applikation.add(menueLeiste, BorderLayout.NORTH);
applikation.add(new JScrollPane(textarea), BorderLayout.CENTER);
applikation.setSize(400, 300);
applikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
applikation.setVisible(true);
}
public void actionPerformed(ActionEvent object) {
if (object.getSource() == oeffnen){
System.out.println("öffnen wurde angeklickt");
}
if (object.getSource() == beenden){
System.out.println("beenden wurde angeklickt");
}
if (object.getSource() == faq){
System.out.println("faq wurde angeklickt");
}
if (object.getSource() == about){
System.out.println("über wurde angeklickt");
}
}
public static void main(String[] args) {
new JMenuBarBeispiel();
}
} |
Hier könnt ihr den Quellcode als Textdatei herunterladen.
Viel Spaß beim weiteren Programmieren. Ihr könnt mein Programm natürlich auch gerne als Vorlage verwenden.
Blogring für tutorial+php…
Verwandte Blog-Einträge…
Schön, interessant wäre allerdings, wie man die MenuItems zentriert in der Menu-Bar darstellt.
Grüße O
Echt super
Danke!!!
Vielen Dank!
gesucht, gefunden, verstanden, benutzt.
JCheckBoxMenuItem könnte noch mit rein, aber das hat man dann ja auch schnell gefunden.
Geil danke, das ist genau das was ich gesucht habe^^
Super, hat echt geholfen 🙂
Hab mal ne Frage,
wenn ich jezze einen von den Untermenüpunkten nur dann anklickbar machen möchte, wenn eine bestimmte Vorraussetzung erfüllt wurde(in meinem Fall bei „Restart“ eines Spiels, zu meinem Zeitpunkt gerne noch leer), wie enable ich das. Eclipse antzeptiert meine Ideen nicht:
public void enableRestart() {
menuItem.setEnabled(true);
Vielen Danke für deine Hilfe bisher.
LG
Gut, hätte aber noch gerne gewusst, wie man die Menus nicht zentriert darstellt…
Low
Vielen Dank! Genau das hatte ich gesucht! Super leicht verständlich und dank Kommentare Prima erklärt!
Hallo Frank,
ich habe eine Frage. Ich habe ein Programm erstellt, so ähnlich wie Du das gemacht hast. Ich möchte aber, dass wenn ich z. B. auf Datenschutz klicke, sich ein neues Fenster öffnet. In diesem neuen Fenster steht dann ein Text. Was muss ich in mein Programm einfügen? Kannst Du mir bitte helfen?
Viele Grüße
Tim
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
/*
* Erstellen eines Fensters mit einer automatischen Groesse
*/
class MenuFrame extends JFrame{
public MenuFrame(){
super(„Lia“);
setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
//Erstellen einer Menüleiste
JMenuBar menuBar = new JMenuBar();
//Hinzufügen von Menüs
JMenu menuApp =
new JMenu("Über Lia");
JMenu menuSettings =
new JMenu("Einstellungen");
JMenu menuPrivacy =
new JMenu("Datenschutz");
menuBar.add(menuApp);
menuBar.add(menuSettings);
menuBar.add(menuPrivacy);
//Hinzufügen der Menüleiste zum Frame
setJMenuBar(menuBar);
/*
*Des Weiteren werden noch Einträge in die JMenus ‚Bearbeiten‘ und ‚Hilfe‘ eingefügt und zu guter letzt wird mit dem Befehl setJMenuBar die oben erstellte Menüleiste als Menüleiste für dieses Fenster festgelegt.
*/
setSize(400,300);
setLocation(50,50);
setVisible(true);
}
public static void main(String[] args){
new MenuFrame();
}
}