JAVA Problem med at sætte JMenuBar ude for class

Tags:    java

Hej alle jeg har prøvet at sætte min JMenuBar til mit vindue, men den gider ikke

Kode :

TSudio1TE
Fold kodeboks ind/udJava kode 


Menu
Fold kodeboks ind/udJava kode 




8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 12 karma
Sorter efter stemmer Sorter efter dato
Den er ikke nem at opdage, men det er fordi du aldrig instantierer undermenuerne. Menuen bliver tilført, problemet er at menuen er tom. På intet tidspunkt bliver Menu.Menu() kaldt. Den er erklæret statisk så det er ikke en konstruktor. Det vil sige at linje 53 i TSudio1TE.java ikke har nogen effect, siden den ikke bliver brugt til noget. Hvis du før linje 55 skriver Menu.Menu(); så kommer hele menuen frem.



Indlæg senest redigeret d. 12.02.2014 15:12 af Bruger #14645
Som de andre rigtigt siger, så initialiserer du ikke din menu ordenligt.

1. Niveau menubar
2. Niveau menu
3. Niveau menuitem


Du skal huske, at for at en menubar vises, skal der som minimum være en menu i den, med en tekst, der er forskellige fra tom. Derudover så skal man sætte menubaren sammen med sin JFrame og ikke Menuen.

Hvis man sætter dette ind i din kode vil det ca. se sådanne her ud.

Fold kodeboks ind/udJava kode 




Hvor initialiserer du menuBar henne? Prøv at ændre linjen:
Fold kodeboks ind/udJava kode 


Mange Swing metoder accepterer gerne null værdier uden at smide en exception, og i det her tilfælde vil en null-værdi fjerne menubar'en, hvis der var en.



Som altid, så kan vi ikke bruge "den gider ikke" til ret meget. Får du fejl eller hvad sker? Post evt. lidt mere kode.



Altså vis den sagde fejl så vil jeg skrive det.

Men her er hele min kode :

TSudio1TE
Fold kodeboks ind/udJava kode 


Menu
Fold kodeboks ind/udJava kode 




Ok, så menuen vises bare ikke eller?

Giver det en forskel, hvis du i din Main metode laver

Fold kodeboks ind/udJava kode 


lige efter at du instantierer din Menu? I stedet for at kaldet Menu klassens SetJMenuBar?



Ingen ændringer



Den er ikke nem at opdage, men det er fordi du aldrig instantierer undermenuerne. Menuen bliver tilført, problemet er at menuen er tom. På intet tidspunkt bliver Menu.Menu() kaldt. Den er erklæret statisk så det er ikke en konstruktor. Det vil sige at linje 53 i TSudio1TE.java ikke har nogen effect, siden den ikke bliver brugt til noget. Hvis du før linje 55 skriver Menu.Menu(); så kommer hele menuen frem.


Tak skal du havde.



t