# Menü Programmieren



## Mani (4. Nov 2007)

Hallo,
Ich muss ein Menü Programmieren und habe auch schon einen Code geschrieben.
Doch bei         C:\Users\Mani\Java\eigeneKlassen\SwingFrame.java:26: illegal start of expression
                        private void createMenu()
                        ^
                        1 error
habe ich einen Fehler und ich habe auch schon im Lehrbuch nachgeschaut und da wurde es genau so gemacht.
Kann sich mal bitte jemand den Code anschauen ?
LG




```
package jav5N.lektion3;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class SwingFrame extends JFrame
{
	JTextField jtfStatus;
	Container contentPane;
	//Menüobjekte:
	JMenuBar menuBar;
	JMenu menuFile, menuOpen, menuHelp;
	JMenuItem jmiNew, jmiOpenFile, jmiOpenWeb, jmiClose, jmiSave, jmiSaveAs, jmiHelp, jmiAbout;
	

	
	public SwingFrame()
	{
		super("SwingFrame mit Menü");
		setSize(400, 200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		contentPane=this.getContentPane();
		// hier: Zusammenbau der Menüs
		
		private void createMenu()
		{

		// Menü Konstruktion - zuerst die MenuBar	
		menuBar=new JMenuBar();
		setJMenuBar(menuBar);
		
		// Datein Menü
		menuFile=new JMenu("Datei");
		jmiNew=new JMenuItem("Neu...");
		menuFile.add(jmiNew);
		
		//Untermenü öffnen (JMenu Objekt!)
		menuOpen=new JMenu("Öffnen");
		jmiOpenFile=new JMenuItem("Dateisystem...");
		menuOpen.add(jmiOpenFile);
		jmiOpenWeb=new JMenuItem("Web...");
		menuOpen.add(jmiOpenWeb);
		menuFile.add(menuOpen);
		jmiClose=new JMenuItem("Schließen");
		menuFile.add(jmiClose);
		
		// Trennlinie einfügen
		menuFile.addSeparator();
		
		jmiSave=new JMenuItem("Speichern");
		menuFile.add(jmiSave);
		jmiSaveAs=new JMenuItem("Speichern als...");
		menuFile.add(jmiSaveAs);
		menuBar.add(menuFile);
		
		// Hilfe Menü
		menuHelp=new JMenu("?");
		jmiHelp=new JMenuItem("Hilfe");
		menuHelp.add(jmiHelp);
		menuHelp.addSeparator();
		jmiAbout=new JMenuItem("Info");
		menuHelp.add(jmiAbout);
		menuBar.add(menuHelp);
		
		menuFile.setMnemonic('d');
		jmiNew.setMnemonic('n');
		menuOpen.setMnemonic('f');
		jmiOpenFile.setMnemonic('e');
		jmiOpenWeb.setMnemonic('w');
		jmiClose.setMnemonic('s');
		jmiSave.setMnemonic('p');
		jmiSaveAs.setMnemonic('a');
	
		//Statusfeld einbauen
		jtfStatus=new JTextField("");
		jtfStatus.setBackground(Color.black);
		jtfStatus.setForeground(Color.white);
		
		JPanel panel = new JPanel();
		panel.setLayout(new BorderLayout());
		panel.add(BorderLayout.SOUTH, jtfStatus);
		contentPane.add(BorderLayout.CENTER, panel);
		
		setVisible(true);
	}
	
	
	public static void main (String[] args)
	{
		new SwingFrame();
	}

}
```


----------



## Kim Stebel (4. Nov 2007)

du kannst methoden nicht ineinander verschachteln. das steht auch garantiert in keinem lehrbuch.


----------



## hansz (5. Nov 2007)

Hallo,

probier mal die beiden Zeilen

private void createMenu()
      { 

im Quelltext einfach wegzulassen, müsste dann laufen.

Der Quelltext Test.java ist leicht verändert.
> javac Test.java
> java Test

Müsste sich dann ein Swing-Fenster mit dem Menü öffnen.



```
/* Test.java */

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Test extends JFrame
{
   JTextField jtfStatus;
   Container contentPane;
   //Menüobjekte:
   JMenuBar menuBar;
   JMenu menuFile, menuOpen, menuHelp;
   JMenuItem jmiNew, jmiOpenFile, jmiOpenWeb, jmiClose, jmiSave, jmiSaveAs, jmiHelp, jmiAbout;
   

   
   public Test()
   {
      super("SwingFrame mit Menü");
      setSize(400, 200);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      contentPane=this.getContentPane();
      // hier: Zusammenbau der Menüs
      
     
      // Menü Konstruktion - zuerst die MenuBar   
      menuBar=new JMenuBar();
      setJMenuBar(menuBar);
      
      // Datein Menü
      menuFile=new JMenu("Datei");
      jmiNew=new JMenuItem("Neu...");
      menuFile.add(jmiNew);
      
      //Untermenü öffnen (JMenu Objekt!)
      menuOpen=new JMenu("Öffnen");
      jmiOpenFile=new JMenuItem("Dateisystem...");
      menuOpen.add(jmiOpenFile);
      jmiOpenWeb=new JMenuItem("Web...");
      menuOpen.add(jmiOpenWeb);
      menuFile.add(menuOpen);
      jmiClose=new JMenuItem("Schließen");
      menuFile.add(jmiClose);
      
      // Trennlinie einfügen
      menuFile.addSeparator();
      
      jmiSave=new JMenuItem("Speichern");
      menuFile.add(jmiSave);
      jmiSaveAs=new JMenuItem("Speichern als...");
      menuFile.add(jmiSaveAs);
      menuBar.add(menuFile);
      
      // Hilfe Menü
      menuHelp=new JMenu("?");
      jmiHelp=new JMenuItem("Hilfe");
      menuHelp.add(jmiHelp);
      menuHelp.addSeparator();
      jmiAbout=new JMenuItem("Info");
      menuHelp.add(jmiAbout);
      menuBar.add(menuHelp);
      
      menuFile.setMnemonic('d');
      jmiNew.setMnemonic('n');
      menuOpen.setMnemonic('f');
      jmiOpenFile.setMnemonic('e');
      jmiOpenWeb.setMnemonic('w');
      jmiClose.setMnemonic('s');
      jmiSave.setMnemonic('p');
      jmiSaveAs.setMnemonic('a');
   
      //Statusfeld einbauen
      jtfStatus=new JTextField("");
      jtfStatus.setBackground(Color.black);
      jtfStatus.setForeground(Color.white);
      
      JPanel panel = new JPanel();
      panel.setLayout(new BorderLayout());
      panel.add(BorderLayout.SOUTH, jtfStatus);
      contentPane.add(BorderLayout.CENTER, panel);
      
      setVisible(true);
   }
   
   
   public static void main (String[] args)
   {
      new Test();
   }

}
```



Gruß hansz


----------

