Menüleiste erstellen

Hallo,
ich brauche mal wieder Hilfe, und zwar will ich eine Menüleiste in einem Fenster erstellen.
Mein Code sieht nun wie folgt aus
Code:
package com.six.calendar.pr;

import java.awt.BorderLayout;
import java.awt.MenuBar;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;

@SuppressWarnings("serial")
public class MainCalendarFrame extends JFrame {
	public void setMenuBar(MenuBar mb)
	{
Bis jetzt wird mir aber keinerlei Menüleiste angezeigt. Nun wollte ich Menüpunkte hinzufügen, wie mache ich das?
Vielen Dank und Grüße:)
 
Moin,

hier mal der Code von einem kleinen Test-Client, den ich vor einiger Zeit geschrieben habe! Daran solltest Du Dich eigentlich gut lang hangeln können.
Ist vlt. nicht perfekt, aber funktioniert :p

Java:
public class AppMenue implements ActionListener
{
	JTextArea Textbereich = null;
	AppFenster AppWindow = null;

	/** Festlegen der MenüPunkte */
	public AppMenue( AppFenster Window, JTextArea text )
	{
		Textbereich = text;
		AppWindow   = Window;

		JMenuBar Menueleiste = new JMenuBar();
		
// #####   Menü 1 "Datei"   #####
		JMenu MenuePkt1 = new JMenu( "Datei" );

		JMenuItem Close = new JMenuItem( "Beenden" );
		MenuePkt1.add( Close );
		Close.addActionListener(this);

// #####   Menü 2 "Test-Daten einlesen"   #####
		JMenu MenuePkt2 = new JMenu( "Test-Daten einlesen" );

		JMenuItem DatenLesen = new JMenuItem( "Get It!" );
		MenuePkt2.add( DatenLesen );
		DatenLesen.addActionListener( this );
		// ...
		Menueleiste.add( MenuePkt1 );
		Menueleiste.add( MenuePkt2 );
	} /* AppMenue() */


	/** Abhandeln der MenüEvents */
	public void actionPerformed( ActionEvent evt )
	{
		// das auslösende Objekt ermitteln
		if( evt.getSource() instanceof JMenuItem ) 
		{ 
			// den auslösenden Menüpunkt ermitteln und anschließend entspr. reagieren
			String MenueEintrag = evt.getActionCommand();

// #####   Menü 1 "Datei"   #####
			/* ******************** */
			/*   Programm beenden   */
			/* ******************** */
			if( MenueEintrag.equals("Beenden") ) 
			{ 
				String msg = new String( "Möchten Sie das Programm beenden ?" );
				int retVal = JOptionPane.showConfirmDialog( AppWindow, msg, "Beenden", 
						JOptionPane.YES_NO_OPTION);
				if( retVal == JOptionPane.YES_OPTION ) 
				{	
					System.exit(0);
				}
			} /* if */
		// ...
		} /* if */
	} /* actionPerformed() */
} /* class AppMenue */

Gruß
Klaus
 
Zuletzt bearbeitet:
Gib doch einfach mal bei google die begriffe jmenubar und example ein.

Der erste treffer bring eine Seite mit folgendem Beispiel:

So sieht das Ergebniss aus: klick

Java:
//Where the GUI is created:
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem;

//Create the menu bar.
menuBar = new JMenuBar();

//Build the first menu.
menu = new JMenu("A Menu");
menu.setMnemonic(KeyEvent.VK_A);
menu.getAccessibleContext().setAccessibleDescription(
        "The only menu in this program that has menu items");
menuBar.add(menu);

//a group of JMenuItems
menuItem = new JMenuItem("A text-only menu item",
                         KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(
        KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.getAccessibleContext().setAccessibleDescription(
        "This doesn't really do anything");
menu.add(menuItem);

menuItem = new JMenuItem("Both text and icon",
                         new ImageIcon("http://www.tutorials.de/forum/images/middle.gif"));
menuItem.setMnemonic(KeyEvent.VK_B);
menu.add(menuItem);

menuItem = new JMenuItem(new ImageIcon("http://www.tutorials.de/forum/images/middle.gif"));
menuItem.setMnemonic(KeyEvent.VK_D);
menu.add(menuItem);

//a group of radio button menu items
menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
menu.add(rbMenuItem);

rbMenuItem = new JRadioButtonMenuItem("Another one");
rbMenuItem.setMnemonic(KeyEvent.VK_O);
group.add(rbMenuItem);
menu.add(rbMenuItem);

//a group of check box menu items
menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
menu.add(cbMenuItem);

cbMenuItem = new JCheckBoxMenuItem("Another one");
cbMenuItem.setMnemonic(KeyEvent.VK_H);
menu.add(cbMenuItem);

//a submenu
menu.addSeparator();
submenu = new JMenu("A submenu");
submenu.setMnemonic(KeyEvent.VK_S);

menuItem = new JMenuItem("An item in the submenu");
menuItem.setAccelerator(KeyStroke.getKeyStroke(
        KeyEvent.VK_2, ActionEvent.ALT_MASK));
submenu.add(menuItem);

menuItem = new JMenuItem("Another item");
submenu.add(menuItem);
menu.add(submenu);

//Build second menu in the menu bar.
menu = new JMenu("Another Menu");
menu.setMnemonic(KeyEvent.VK_N);
menu.getAccessibleContext().setAccessibleDescription(
        "This menu does nothing");
menuBar.add(menu);

...
frame.setJMenuBar(theJMenuBar);
 
Danke für das Beispiel, doch er gibt mir bei der letzten zeile
Code:
Frame.setMenuBar(menuBar);
einen Fehler aus "The method setMenuBar (MenuBar) in the type Frame is not applicable for the arguments (JMenuBar).":confused:
 
Poste mal dein kompletten Code.
Entweder fehlt der oben der import. Oder bei dir heißt das frame nicht frame sondern hat einen anderen namen, wenn du deine Klasse direkt von Jframe hast erben lassen solte es auch mit this funktionieren.
 
Code:
package com.six.calendar.pr;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;

@SuppressWarnings("serial")
public class MainCalendarFrame extends JFrame {
	private static final String theJMenuBar = null;
		
	public MainCalendarFrame() {
		super("TeamCal Plus");
	}
	
	public void init() {
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		//getContentPane().setLayout(new BorderLayout());
		JDesktopPane content = new JDesktopPane();
		setContentPane(content);
		//getContentPane().add(content, BorderLayout.CENTER);
		MitarbeiterPanel maPanel = new MitarbeiterPanel();
		maPanel.init();
		JInternalFrame maFrame = new JInternalFrame("Mitarbeiter", true, true, true, true);
		maFrame.getContentPane().setLayout(new BorderLayout());
		maFrame.getContentPane().add(maPanel, BorderLayout.CENTER);
		maFrame.setSize(200, 300);
		maFrame.setVisible(true);
		content.add(maFrame);
	}
	
	//Where the GUI is created:
	JMenuBar menuBar;
	JMenu menu, submenu;
	JMenuItem menuItem;
	JRadioButtonMenuItem rbMenuItem;
	JCheckBoxMenuItem cbMenuItem;
	{
	//Create the menu bar.
	menuBar = new JMenuBar();

	//Build the first menu.
	menu = new JMenu("A Menu");
	menu.setMnemonic(KeyEvent.VK_A);
	menu.getAccessibleContext().setAccessibleDescription(
	        "The only menu in this program that has menu items");
	menuBar.add(menu);

	//a group of JMenuItems
	menuItem = new JMenuItem("A text-only menu item",
	                         KeyEvent.VK_T);
	menuItem.setAccelerator(KeyStroke.getKeyStroke(
	        KeyEvent.VK_1, ActionEvent.ALT_MASK));
	menuItem.getAccessibleContext().setAccessibleDescription(
	        "This doesn't really do anything");
	menu.add(menuItem);

	menuItem = new JMenuItem("Both text and icon",
	                         new ImageIcon("images/middle.gif"));
	menuItem.setMnemonic(KeyEvent.VK_B);
	menu.add(menuItem);

	menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
	menuItem.setMnemonic(KeyEvent.VK_D);
	menu.add(menuItem);

	//a group of radio button menu items
	menu.addSeparator();
	ButtonGroup group = new ButtonGroup();
	rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
	rbMenuItem.setSelected(true);
	rbMenuItem.setMnemonic(KeyEvent.VK_R);
	group.add(rbMenuItem);
	menu.add(rbMenuItem);

	rbMenuItem = new JRadioButtonMenuItem("Another one");
	rbMenuItem.setMnemonic(KeyEvent.VK_O);
	group.add(rbMenuItem);
	menu.add(rbMenuItem);

	//a group of check box menu items
	menu.addSeparator();
	cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
	cbMenuItem.setMnemonic(KeyEvent.VK_C);
	menu.add(cbMenuItem);

	cbMenuItem = new JCheckBoxMenuItem("Another one");
	cbMenuItem.setMnemonic(KeyEvent.VK_H);
	menu.add(cbMenuItem);

	//a sub menu
	menu.addSeparator();
	submenu = new JMenu("A submenu");
	submenu.setMnemonic(KeyEvent.VK_S);

	menuItem = new JMenuItem("An item in the submenu");
	menuItem.setAccelerator(KeyStroke.getKeyStroke(
	        KeyEvent.VK_2, ActionEvent.ALT_MASK));
	submenu.add(menuItem);

	menuItem = new JMenuItem("Another item");
	submenu.add(menuItem);
	menu.add(submenu);

	//Build second menu in the menu bar.
	menu = new JMenu("Another Menu");
	menu.setMnemonic(KeyEvent.VK_N);
	menu.getAccessibleContext().setAccessibleDescription(
	        "This menu does nothing");
	menuBar.add(menu);

	frame.setJMenuBar(theJMenuBar);
	
	}
}
Das ist der gesamte Code.
Grüße
 
änder die letze Zeile mal bitte so:

Code:
this.setJMenuBar(menuBar);

wenn du längeren Java-Quellcode postest kannst du anstatt den CODE tags auch die JAVA tags verwenden.
 
Hab das Beispiel mal in eine TestKlasse eingebunden.

Dashier läuft bei mir:

Java:
package de.tutorials.johannes7146;

import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;

public class MenuExample extends JFrame {

    private static final long serialVersionUID = 6698241598541408794L;

    public static void main(String[] args) {
        MenuExample me = new MenuExample();
        me.init();
    }

    public void init() {
        this.setSize(500, 500);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        addMenu();
        this.setVisible(true);
    }

    public void addMenu() {
        //Where the GUI is created:
        JMenuBar menuBar;
        JMenu menu, submenu;
        JMenuItem menuItem;
        JRadioButtonMenuItem rbMenuItem;
        JCheckBoxMenuItem cbMenuItem;
        {
            //Create the menu bar.
            menuBar = new JMenuBar();

            //Build the first menu.
            menu = new JMenu("A Menu");
            menu.setMnemonic(KeyEvent.VK_A);
            menu
                    .getAccessibleContext()
                    .setAccessibleDescription("The only menu in this program that has menu items");
            menuBar.add(menu);

            //a group of JMenuItems
            menuItem = new JMenuItem("A text-only menu item", KeyEvent.VK_T);
            menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
                                                           ActionEvent.ALT_MASK));
            menuItem.getAccessibleContext()
                    .setAccessibleDescription("This doesn't really do anything");
            menu.add(menuItem);

            menuItem = new JMenuItem("Both text and icon",
                                     new ImageIcon("images/middle.gif"));
            menuItem.setMnemonic(KeyEvent.VK_B);
            menu.add(menuItem);

            menuItem = new JMenuItem(new ImageIcon("images/middle.gif"));
            menuItem.setMnemonic(KeyEvent.VK_D);
            menu.add(menuItem);

            //a group of radio button menu items
            menu.addSeparator();
            ButtonGroup group = new ButtonGroup();
            rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
            rbMenuItem.setSelected(true);
            rbMenuItem.setMnemonic(KeyEvent.VK_R);
            group.add(rbMenuItem);
            menu.add(rbMenuItem);

            rbMenuItem = new JRadioButtonMenuItem("Another one");
            rbMenuItem.setMnemonic(KeyEvent.VK_O);
            group.add(rbMenuItem);
            menu.add(rbMenuItem);

            //a group of check box menu items
            menu.addSeparator();
            cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
            cbMenuItem.setMnemonic(KeyEvent.VK_C);
            menu.add(cbMenuItem);

            cbMenuItem = new JCheckBoxMenuItem("Another one");
            cbMenuItem.setMnemonic(KeyEvent.VK_H);
            menu.add(cbMenuItem);

            //a sub menu
            menu.addSeparator();
            submenu = new JMenu("A submenu");
            submenu.setMnemonic(KeyEvent.VK_S);

            menuItem = new JMenuItem("An item in the submenu");
            menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,
                                                           ActionEvent.ALT_MASK));
            submenu.add(menuItem);

            menuItem = new JMenuItem("Another item");
            submenu.add(menuItem);
            menu.add(submenu);

            //Build second menu in the menu bar.
            menu = new JMenu("Another Menu");
            menu.setMnemonic(KeyEvent.VK_N);
            menu.getAccessibleContext()
                    .setAccessibleDescription("This menu does nothing");
            menuBar.add(menu);

            this.setJMenuBar(menuBar);
        }

    }
}
 

Neue Beiträge

Zurück