# eine Frage über JApplet und JMenuBar



## mabaosheng2002 (20. Mai 2006)

Hallo, ich bin neu hier. Und ich habe eine Frage über JApplet und JMenuBar. Es ist so, ich habe ein Stück Code programmiert über das JApplet, habe JMenuBar, JMenu und JMenuItem eingefügt, aber nachdem ich das JApplet gestartet habe, kann ich nur MenuBar und die HauptMenu sehen, wenn ich MenuItem clicke, können die MenuItems nicht dargestellt werden. Hat jemand den Fall auch getroffen?


----------



## Gelöschtes Mitglied 5909 (21. Mai 2006)

code...


----------



## André Uhres (21. Mai 2006)

mabaosheng2002 hat gesagt.:
			
		

> ..wenn ich MenuItem clicke, können die MenuItems nicht dargestellt werden. Hat jemand den Fall auch getroffen?


Ja, das war eine heavyweight (AWT) Komponente die die Menuitems verdeckte (Canvas, Panel, ...).
Kann aber bei dir auch etwas anderes sein. 
Also hat raiL schon recht: poste einfach mal den Code...


----------



## mabaosheng2002 (21. Mai 2006)

Ja, völlig richtig, die Menuitems werden von Panel gedeckt. Die Code sind da. Es gibt 3 Klasse, eine ist die Basis-Abstrkt-Klasse, heißt GraphGame, sie ist subclass von JApplet, eine ist die Subklasse heißt TSPGame, noch eine heißt GraphPanel, sie ist subclass von Panel. Das Problem liegt in der Basisklasse, GraphGame. Die Hauptfunktion von GraphGame und GraphPanel ist, die Benutzeroberfläche zu erzeugen. D.h. ich add einige Elemente in eine Instanz von GraphPanel, hier '_p', dann add _p in die Instanz von GraphGame. Was ich gefounden habe, ist, wegen dieses Befehls:'contentPane.add(_p, BorderLayout.CENTER);',die Zeile 157. Da ist _p die obengenannte Instanz von GraphPanel. I habe so probiert, solange ich diese Zeile wegnehme, tauchen die Submenus auf, solange ich das Panel _p ins JApplet einfüge, deckt das Panel _p die Submenus. Aber wenn ich den Befehl so ändere wie folgendes:'contentPane.add(_p, BorderLayout.EAST);' dann kann ich die Submenus wieder sehen. Aber bis jetzt habe ich die Lösung noch nicht ausgedacht.

Weil die Code nicht von mir gemacht wird, habe ich sie gelöscht.


----------



## L-ectron-X (21. Mai 2006)

Des Rätsels Lösung verbirgt sich vielleicht in diesem FAQ-Beitrag.
http://www.java-forum.org/de/viewtopic.php?t=5113

Passe deinen Code entsprechend an, wenn du dann immer noch Probleme hast, kommst du wieder. :wink:


----------



## André Uhres (21. Mai 2006)

mabaosheng2002 hat gesagt.:
			
		

> Ja, völlig richtig, die Menuitems werden von Panel gedeckt...


AWT und Swing vertragen sich nicht gut zusammen.
Versuch mal aus den AWT-Komponenten Swing-Komponenten zu machen:
Button->JButton
Checkbox=>JCheckBox
Choice->JComboBox
Label->JLabel
Frame->JFrame
Dialog->JDialog

Ich kann das leider nicht mit deinem Code testen, dazu fehlen noch zu viele Klassen.


----------



## mabaosheng2002 (21. Mai 2006)

Hallo, L-ectron-X und Andre, das Problem habe ich gelöst. Und genau wie ihr gesagt, alles wegen des Zusammenhang zwischen der leichten Component und schweren Component. Ich habe das Panel auch zu JPanel umgesetzt, und es funktioniert wunderbar! Vielen Dank für eure Hinweis! Und schönen Tag!


----------

