# Suche fertige JMenuBar samt Untermenus mit ActionListener



## Wini (1. Jun 2005)

Hallo,

suche im Prinzip Code für ein fertiges kleines Programm mit JMenuBar wo ich per ActionListener ein 

"Datei"

-"Neu..." 
-"Speichern.."
-"Speichern unter ..."
-"Beenden"

"Bearbeiten"

-"kopieren"
-"einfügen"

ausführen kann. 

Und z.B. im Menu nach Bearbeiten einen Punkt "Eingabe" mit dem Unterpunkt "Name eingeben"kann, wo sich in dem Hauptfenter ein eingabefenster öffnet (nicht in einem extra fenster, wie z.B. bei Speichern) in dem ich dann einen namen eine nummer und z.b eine telefonnummer eintragen kann.

Für jede hilfe wäre ich dankbar.


----------



## T1M (1. Jun 2005)

Hi,
ich hab das mal so gelöst:

```
//Menuleiste erstellen
	public static JMenu makeMenu(Object parent, Object[] items, Object target)
	{
		JMenu m = null;
		if(parent instanceof JMenu)
			m = (JMenu)parent;
		else if(parent instanceof String)
			m = new JMenu((String)parent);
		else
			return null;
		for(int i=0; i<items.length; i++)
		{
			if(items[i]==null)
				m.addSeparator();			//trennstrich
			else
				m.add(makeMenuItem(items[i], target));	//etwas (z.B. speichern) wird in 		
		}												//menuleiste aufgenommen
		return m;
	}
	
	//Menuleiste füllen
	public static JMenuItem makeMenuItem(Object item, Object target)
	{
		JMenuItem r = null;
		if(item instanceof String)
			r = new JMenuItem((String)item);
		else if(item instanceof JMenuItem)
			r = (JMenuItem)item;
		else
			return null;
		if(target instanceof ActionListener)
			r.addActionListener((ActionListener)target);
		return r;
	}
```
so kann man schön einfach unterpunkte erzeugen.

edit: musst dann in deinem prog die add-methode anwenden um die komplette bar zu erzeugen. und dann per actionperformed einfach funktionen zuweisen.
T1M


----------



## Sky (1. Jun 2005)

Warum übergibst du für 'target' ein Object und nicht gleich einen ActionListener???


----------



## T1M (2. Jun 2005)

hmm, das geht auch?
hab doch im grunde kA. bin (noch) anfänger ...
aber wenigstens funzt es 1a!


----------



## Sky (2. Jun 2005)

T1M hat gesagt.:
			
		

> hmm, das geht auch?
> hab doch im grunde kA. bin (noch) anfänger ...
> aber wenigstens funzt es 1a!


Ja klar geht das... einfach überall, wo Object target steht ActionListener target hinschreiben... somit kannst Du Dir das instanceof und den Cast sparen...


----------



## T1M (3. Jun 2005)

alles klar. thx a lot!
   T1M


----------

