Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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?
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...
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.
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.
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!