MenuBar in Application anzeigen

yagmur

Mitglied
Hallo,

ich Hoffe ihr könnt mir Helfen, wäre euch sehr verbunden.

folgendes Problem wofür ich keine Lösung im Internet oder in Foren gefunden habe:

Java:
public class fenster extends Frame 
{
     MenuBar leiste = new MenuBar();
     Menu format = new Menu("Format");
     CheckboxMenuItem fett = new CheckboxMenuItem("fett");
     CheckboxMenuItem normal = new CheckboxMenuItem("normal");
     CheckboxMenuItem kursiv = new CheckboxMenuItem("kursiv");

     public static void main(String[] args) 
     {
	     fenster fr = new fenster();
	     fr.setVisible(true);
     }
	
     public fenster() 
    {
          setSize(400,300);

          setMenuBar(leiste);
	  leiste.add(format);
		
	  format.add(fett);
	  format.add(normal);
	  format.add(kursiv);
    }
}

Also ich habe das jetzt so weit vereinfacht bis das wesentlich da steht.
Ich müsste jetzt theoretisch doch oben eine Menü sehen mit dem Begriff Format worin sich dann die Einträge fett, normal und kursiv stehen oder ?

Ich muss dazu sagen das ich auf einem MAC OS X programmiere was aber bis jetzt keinen unterscheid zu Windows gemacht hat.

Warum erscheint mein Menü nicht ?

Vielen Lieben Dank schon mal im vorraus.
 
Also bei mir unter Windows funktioniert's einwandfrei.
Sollte eigentlich nicht drauf an kommen, aber drehe doch die Aufrufe im Konstruktor einmal um:

Java:
public fenster() 
{
    setSize(400,300);
 
    format.add(fett);
    format.add(normal);
    format.add(kursiv);
    
    leiste.add(format);
    setMenuBar(leiste);
}
 
ne bringt auch nichts.
ich habe den selben Code gerade unter windows eingegeben und da sieht man das Menü.

Bis jetzt hatte ich keinerlei unterschiede geschweige den Probleme unter MAC aber das hier geht nicht.

Vielen Dank erst mal für die Mühe und hilfe.

Ich werd mal ein neues Thema aufmachen (an der richtigen Stelle 🙂) wo vielleicht leute gibt die den unterschied Windows Mac schon kennen.
 
ich arbeite mich gerade vor, sprich mit Swing hab ich noch nichts gemacht.
Und rein Stoffmäßig müsste ich diese Variente erst behherschen (für den unterricht).
 
Alles klar. 😉

Wenn du's trotzdem mal unter Mac probieren willst, hier dein angepasster Code für Swing:

Java:
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;

public class fenster extends JFrame 
{
     JMenuBar leiste = new JMenuBar();
     JMenu format = new JMenu("Format");
     JCheckBoxMenuItem fett = new JCheckBoxMenuItem("fett");
     JCheckBoxMenuItem normal = new JCheckBoxMenuItem("normal");
     JCheckBoxMenuItem kursiv = new JCheckBoxMenuItem("kursiv");
 
     public static void main(String[] args) 
     {
         fenster fr = new fenster();
         fr.setVisible(true);
     }
    
     public fenster() 
     {
         setSize(400,300);
      
         format.add(fett);
         format.add(normal);
         format.add(kursiv);
         
         leiste.add(format);
         setJMenuBar(leiste);
     }
}

EDIT: Hab es gerade selber unter Mac OS getestet. AWT geht nicht, Swing funktioniert einwandfrei.
Wieso kann ich dir aber leider auch nicht sagen. Irgend ein Mac-Profi hier? 😉
 
Zuletzt bearbeitet:
Super danke dir.
Ab Montag werden wir in der schule dann eh mit Swing anfangen. Da hab ich dann was vorraus 🙂
So wie ich das sehe ändert sich am Anfang eh erst mal nichts auser das ein J vor den Steuerelemente steht oder ? 🙂
 
Super danke dir.
Ab Montag werden wir in der schule dann eh mit Swing anfangen. Da hab ich dann was vorraus 🙂
So wie ich das sehe ändert sich am Anfang eh erst mal nichts auser das ein J vor den Steuerelemente steht oder ? 🙂

Jein.
Wenn du Swing verwendest, nimmt dein GUI standardmässig das Java-Design bzw. den Swing-Style an, der auf allen Plattformen gleich aussieht.
Im Gegensatz dazu arbeitet AWT mit den nativen GUI-Elementen des Betriebssystems. Kurz gesagt: Mit "J" = Java-Style, ohne "J" = Windows-Style. 😉

Und Achtung: CheckboxMenuItem = JCheckBoxMenuItem
 

Zurück
Oben