JMenuBar, JMenu, JMenuItem wird nicht angezeigt

mmhhh

Mitglied
Ich habe in meinem programm einen JFrame erstellt, dazu eine JMenuBar geaddet, zu dieser mehrere JMenu's, aber es wird mir nicht angezeit, weis jemand wiso?

Java:
public JMenuBar menubar;
	
	public Menu()
	{
		menubar = new JMenuBar();
		
		JMenu saveload = new JMenu("Speichern/Laden");
		JMenu module = new JMenu("Module");
		JMenu language = new JMenu("Sprache");
		JMenu controls = new JMenu("Steuerung");
		JMenu tips = new JMenu("Tips");
	
		JMenuItem save = new JMenuItem("Save");
	
		saveload.add(save);
		
		menubar.add(saveload);
		menubar.add(module);
		menubar.add(language);
		menubar.add(controls);
		menubar.add(tips);

		Main.frame.setJMenuBar(menubar);
		
	}
 

Volvagia

Top Contributor
Das Problem muss wo anderst liegen, das funktioniert problemlos:

Java:
package org.javaforum;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Menu {
	private JMenuBar menubar;
	
	public Menu()
	{
	    menubar = new JMenuBar();
	    
	    JMenu saveload = new JMenu("Speichern/Laden");
	    JMenu module = new JMenu("Module");
	    JMenu language = new JMenu("Sprache");
	    JMenu controls = new JMenu("Steuerung");
	    JMenu tips = new JMenu("Tips");

	    JMenuItem save = new JMenuItem("Save");

	    saveload.add(save);
	    
	    menubar.add(saveload);
	    menubar.add(module);
	    menubar.add(language);
	    menubar.add(controls);
	    menubar.add(tips);

	    JFrame frame = new JFrame();
	    frame.setJMenuBar(menubar);
	    
	    frame.setSize(800, 600);
	    frame.setVisible(true);
	    
	}
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				new Menu();				
			}
		});
	}
}
 

MrClave

Bekanntes Mitglied
Dein geposteter Code sieht in Ordnung aus. Daran kann es nicht liegen.

Vielleicht ein einfacher .setVisible() Fehler.

Solltest mal alles posten, was mit dem Frame zusammenhängt.
 

mmhhh

Mitglied
Java:
package net;
import com.aldebaran.proxy.*;

import java.applet.*;
import javax.swing.*;

import java.awt.*;
import java.util.*;

public class Main extends Applet implements Runnable
{
	private static final long serialVersionUID = 1L;
	
	public static String NAO_IP = "127.0.0.1";
	public static int NAO_PORT = 9559;

	public static boolean isRunning = false;
	public static boolean isMouseLeftDown = false;
	public static boolean isMouseRightDown = false;	
	public static boolean WASD = false;
	public static boolean isMouseControling = false;
	public static boolean isExtraGUiopen = false;
	
	public static JFrame frame = new JFrame();
	public static JPanel panel = new JPanel();
	public static Dimension size = new Dimension(1500,800);
	
	public static Point mse = new Point(0,0);
	
	public static String name = "NAO RC";
	
	private Image screen;
	
	public static Module module; 
	public static Menu menu;
	
	
	public Main()
	{
	
		setPreferredSize(size);
		
		addKeyListener(new Listening());
		addMouseListener(new Listening());
		addMouseMotionListener(new Listening());
		addMouseWheelListener(new Listening());
	}
	
	public static void main(String args[])
	{
		Main main = new Main();
		
						
		frame.add(main);
		frame.pack();
		frame.setName(name);
		frame.setResizable(false);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);

		
         module = new Module();
         menu = new Menu();
         
        JMenuBar menubar = new JMenuBar();
 		frame.setJMenuBar(menubar);
 		JMenu saveload = new JMenu("Speichern/Laden");
         
         menubar.add(saveload);
         
       
		
		frame.add(panel);
		main.start();
		ALTextToSpeechProxy tts = new ALTextToSpeechProxy(NAO_IP, NAO_PORT);
	    tts.say("Hello, world");
		
		
	}

	
	public void start()
	{
		requestFocus();
			
		
		isRunning = true;
		new Thread(this).start();
	}
	
	public void stop()
	{
		isRunning = false;
	}
	
	public void tick()
	{		
		
	}
	
	public void render()
	{
	}

	public void run() 
	{
		screen = createVolatileImage(size.width, size.height);
		while(isRunning)
		{
			tick();
			render();
			try
			{
				Thread.sleep(5);
			}
			catch(Exception e) {}
		}
	}
	
	 static
	  {
	  System.loadLibrary("jnaoqi");
	  }

}

unwichtiges hab ich gelöscht, wegen der länge
 

Volvagia

Top Contributor
Java:
menu = new Menu();

JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu saveload = new JMenu("Speichern/Laden");

Du überschreibst das Menu des Menüs ja wieder.
 

bERt0r

Top Contributor
Wie mans sauberer macht:
Java:
public class MyMenuBarFactory
{
    
    public static JMenuBar createMenuBar()
    {
        JMenuBar menubar = new JMenuBar();
        
        JMenu saveload = new JMenu("Speichern/Laden");
        JMenu module = new JMenu("Module");
        JMenu language = new JMenu("Sprache");
        JMenu controls = new JMenu("Steuerung");
        JMenu tips = new JMenu("Tips");
    
        JMenuItem save = new JMenuItem("Save");
    
        saveload.add(save);
        
        menubar.add(saveload);
        menubar.add(module);
        menubar.add(language);
        menubar.add(controls);
        menubar.add(tips);
 
        return menubar;
        }
    }

// Im Frame dann
frame.setJMenuBar(MyMenuBarFactory.createMenuBar());
 

mmhhh

Mitglied
Mein neuer Text:

Java:
package net;

import javax.swing.*;

public class Menu 
{
	public static JMenuBar menubar;
	
	public Menu()
	{
		createMenuBar();
		
	}
	
	 public static JMenuBar createMenuBar()
	    {
	        menubar = new JMenuBar();
	        
	        JMenu saveload = new JMenu("Speichern/Laden");
		menubar.add(saveload);
		
		JMenuItem save = new JMenuItem("Save");
		saveload.add(save);
		
		
		JMenu module = new JMenu("Module");
		menubar.add(module);
		
		JMenuItem connection = new JMenuItem("Connection");
		module.add(connection);
		
		
		JMenu language = new JMenu("Sprache");
		menubar.add(language);
		
		JMenuItem german = new JMenuItem("German");
		language.add(german);
		
		JMenuItem english = new JMenuItem("English");
		language.add(english);
		
		JMenuItem french = new JMenuItem("French");
		language.add(french);
		
		
		JMenu controls = new JMenu("Steuerung");
		menubar.add(controls);
		
		
		JMenu tips = new JMenu("Tips");
		menubar.add(tips);
	        
	        
	        return menubar;
	    }

}
 

MrClave

Bekanntes Mitglied
Da bekommt Ordnung ja eine komplett neue Bedeutung. Ein ganz fieser Nebeneffekt in einem Konstruktoraufruf. Und das auch noch auf eine Klassenvariable, die es so in keinem sauberen Programm geben sollte.

Nur schade, dass ich die MenuBar an sich meinte :bahnhof:

Das .setVisible() sollte außerdem nach dem Component-add stehen.
Ich denke mal, dass das hier der Fehler war.

(War zumindest bei meinem Test so)
 

mmhhh

Mitglied
danke, jetzt geht es, aber bei dem
Java:
frame.add(main)
bekomme ich einen error, wenn ichs weglasse zeigt es mit die menü leiste an, soll ich das machen?
 

mmhhh

Mitglied
danke, jetzt geht es, aber bei dem
Java:
frame.add(main)
bekomme ich einen error, wenn ichs weglasse zeigt es mit die menü leiste an, soll ich das machen?

und was ist die beste methode einen druck auf ein JMenuItem auszulesen?
 

MrClave

Bekanntes Mitglied
Kannst einen ganz normalen ActionListener, wie bei einem Button, dranhängen.
Ob es noch weitere Möglichkeiten gibt, weiß ich nicht, allerdings finde ich dies schon ziemlich einfach zu implementieren.
 

mmhhh

Mitglied
Und wie kann ich zu einem JMenuItem ein weiteres menü hinzufügen? also so dass da so ein kleines dreieck neben enem Menüpunkt ist, und wenn man draufgeht kommt links ein weiteres menü.

und wie komm ich ein JMenu in der JMenuBar nach ganz rechts schieben, bzw neu plazieren?

danke schonmal für das oben, und hoffentlich für weiteres
 

MrClave

Bekanntes Mitglied
Das dürfte das JPopUpMenu sein.
JPopupMenu

Ich denke mal, dass du es einfach beim adden sortieren solltest.
Also chronologisch adden, je nachdem, wie du es haben willst.

Wie man es im nachhinein macht - Keine Ahnung. Da müsstest du in die API gucken.
Allerdings ist es auf die obige Art am einfachsten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
C JMenuBar AWT, Swing, JavaFX & SWT 6
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
J Swing JMenuItem blockiert JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar bei sichtbarer JGlassPane AWT, Swing, JavaFX & SWT 1
R JMenuBar.setFont tut nix ? AWT, Swing, JavaFX & SWT 1
I Swing JMenuBar auch unten am JFrame? AWT, Swing, JavaFX & SWT 2
A Swing JMenuBar updaten AWT, Swing, JavaFX & SWT 2
kaoZ Swing JMenuBar, Preferences, Properties... und viele andere lustige Dinge (Best Practice) AWT, Swing, JavaFX & SWT 15
Q Designfrage zur JMenuBar AWT, Swing, JavaFX & SWT 6
S JMenuBar wiederverwenden und Eventhandling anpassen AWT, Swing, JavaFX & SWT 4
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
B Swing Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
H jMenuBar AWT, Swing, JavaFX & SWT 13
NR_EIGHT Swing Probleme mit JMenuBar AWT, Swing, JavaFX & SWT 6
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
Madlip JMenuBar in JFrame AWT, Swing, JavaFX & SWT 5
B JFrame / JMenuBar => Anfängerprobleme AWT, Swing, JavaFX & SWT 2
R JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar nach 1. Klick deselectieren AWT, Swing, JavaFX & SWT 6
Z JMenuBar wird nicht in JFrame angezeigt AWT, Swing, JavaFX & SWT 2
N JMenuBar verschwindet nicht nach ComponentEvent AWT, Swing, JavaFX & SWT 6
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
A Doppelte JMenuBar AWT, Swing, JavaFX & SWT 2
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
C JMenuBar im JFrame abgehackt AWT, Swing, JavaFX & SWT 7
J Swing JFrame mit JMenuBar, allerdings ohne Erfolg AWT, Swing, JavaFX & SWT 10
K Look&Feel von JMenuBar und Subkomponenten anpassen AWT, Swing, JavaFX & SWT 6
C JMenuBar linksbündig AWT, Swing, JavaFX & SWT 6
C Größe JMenuBar AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing Actions direkt auf der JMenuBar AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
Developer_X Swing JMenuBar Layout AWT, Swing, JavaFX & SWT 2
kniffel JMenuBar aus anderer Klasse AWT, Swing, JavaFX & SWT 10
G Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
G JMenuBar verschmälern AWT, Swing, JavaFX & SWT 2
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
X JMenuBar überlappt von JPanel :( AWT, Swing, JavaFX & SWT 7
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
G StatusBar Optik wie JMenuBar; GUI-Erzeugung delegieren AWT, Swing, JavaFX & SWT 2
J JMenuBar in Frame einbauen AWT, Swing, JavaFX & SWT 6
D Canvas über JMenuBar AWT, Swing, JavaFX & SWT 7
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
C JLabel in JMenuBar frei platzieren AWT, Swing, JavaFX & SWT 2
B JMenubar AWT, Swing, JavaFX & SWT 5
Chris_1980 Makierungsfarbe bei JMenuBar ändern AWT, Swing, JavaFX & SWT 5
L Problem mit JMenuBar AWT, Swing, JavaFX & SWT 5
F JTextField rechts in der JMenuBar AWT, Swing, JavaFX & SWT 4
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
I JMenuBar - Menüs sortieren AWT, Swing, JavaFX & SWT 2
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
M JMenuBar AWT, Swing, JavaFX & SWT 7
B JMenuBar sowie Buttons nach repaint auf JPanel AWT, Swing, JavaFX & SWT 2
T JMenuBar ausblenden lassen aber Hotkeys sollen erhalten sein AWT, Swing, JavaFX & SWT 2
S JMenuBar + update AWT, Swing, JavaFX & SWT 3
T JMenuBar zweizeilig AWT, Swing, JavaFX & SWT 2
A JMenuBar + paint (Image) AWT, Swing, JavaFX & SWT 6
M JmenuBar wird net angezeigt :( AWT, Swing, JavaFX & SWT 6
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
A JMenuBar verschieben. AWT, Swing, JavaFX & SWT 4
T JMenuBar wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 5
H JFrame, JMenuBar, ScrollBar AWT, Swing, JavaFX & SWT 3
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
H Swing JMenu aufgeklappt oder nicht - Wie frage ich das ab? AWT, Swing, JavaFX & SWT 5
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
Y Backgroundcolor JMenu AWT, Swing, JavaFX & SWT 2
D Merkwürdiges Verhalten vom JMenu AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
E JMenu erscheint nach RDP-Verbindung auf falschem Desktop AWT, Swing, JavaFX & SWT 1
S Swing JMenu löscht auf panel gezeichnetes AWT, Swing, JavaFX & SWT 3
llabusch Prüfen ob JMenu leer ist & löschen AWT, Swing, JavaFX & SWT 1
3 Swing Vertikaler Separator zwischen JMenu's AWT, Swing, JavaFX & SWT 2
S JMenu unter JPanel versteckt AWT, Swing, JavaFX & SWT 5
S jMenu wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
T JMenu reagiert auf F-Taste AWT, Swing, JavaFX & SWT 6
Jagson Mit JMenu auf jDialog zurück? Wie? AWT, Swing, JavaFX & SWT 8
Kenan89 JMenu Fragen AWT, Swing, JavaFX & SWT 5
B Swing JMenu zwischen anderen Componenten AWT, Swing, JavaFX & SWT 4
R JMenu aus Ordnern AWT, Swing, JavaFX & SWT 4
P JMenu aus Dateistruktur AWT, Swing, JavaFX & SWT 2
I JMenu AWT, Swing, JavaFX & SWT 5
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
frankred Swing JMenu verschwindet nicht beim klicken ausserhalb des JMenu! AWT, Swing, JavaFX & SWT 4
F JMenu auf JPanel AWT, Swing, JavaFX & SWT 5
E Swing JMenu in GUI einbinden AWT, Swing, JavaFX & SWT 5
S Probleme mit JMenu und JMenuItem AWT, Swing, JavaFX & SWT 2
E JMenu übersetzen AWT, Swing, JavaFX & SWT 9
W JMenu wird vom JPanel ständig überzeichnet... Abhilfe? AWT, Swing, JavaFX & SWT 3
P JMenu-Erweiterung in externer Datei AWT, Swing, JavaFX & SWT 5
T Swing JMenu als Button behandeln AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben