2009-04-08 7 views
6

Gibt es eine Möglichkeit, ein JMenuItem zu einem JPanel hinzuzufügen, so dass ich eine Schaltfläche erstellen kann, um mehrere Optionen, wie die neueste Nachrichtenschaltfläche in Firefox, unter der Adressleiste anzuzeigen?Java: Wie kann ich einem JPanel ein JMenu hinzufügen oder eine Dropdown-Schaltfläche erstellen?

Ich kann nur JMenu und JMenuItems zu einem JMenuBar, JPopupMenu und anderen JMenus und JMenuItems

Gibt es eine Möglichkeit hinzufügen, in Java Swing ein Drop-Down-Jdrücken zu schaffen? (Die mit einem Pfeil nach unten in der linken, die mehr Optionen für den Benutzer zeigt)

Vielen Dank im Voraus

+0

Vielen Dank für Ihr Feedback. Wenn Sie einen Code haben, der Ihre Lösung illustriert, könnte es interessant sein, ihn als Antwort zu veröffentlichen (und wählen Sie Ihren eigenen Eintrag als die offizielle Antwort, wenn Sie wollen) – VonC

+0

thx, ich habe es getan, aber ich muss 48 Stunden warten, um meine Stimme abzugeben Antwort – Telcontar

Antwort

5

Zu guter Letzt muss ich die "Show Options Button" implementieren mit einem einfachen Jutton und eine JPopupPane mit den Optionen zu zeigen:

Im ActionPerformedListener der Schaltfläche schreibe ich diesen Code:

popMenu.show(showOptionsButton,0,showOptionsButton.getHeight()) 

Es funktioniert gut wie ein JMenu in einer JMenuBar, aber nicht genau wie eine Dropdown-Schaltfläche, in der Sie eine Aktion ausführen können, indem Sie auf die Schaltfläche klicken oder weitere Aktionen anzeigen, indem Sie den Abwärtspfeil drücken. Ich glaube, das kann getan werden, indem man zwei Knöpfe "sehr nahe" benutzt, dann den Code oben in der Pfeiltaste benutzt, aber die "Aktionsschaltfläche" als Komponente des Popups einstellt, so dass das Popup unten auf beiden Tasten erscheint.

+0

Vielen Dank für dieses Feedback. +1 – VonC

3

A JMenuBar darf nur an ein JFrame (setMenuBar()) hinzugefügt werden, keine JPanel.

Ein Swing Dropdown-Button ist der Weg, um hier zu gehen.

Sehen Sie diese article für eine gute Diskussion über verschiedene Umsetzungs Sätze

alt text http://blogs.sun.com/geertjan/resource/dropdownbutton1-jl.png

Die obige Drop-down-Taste, um die NetBeans UI Dienstprogramme API (platform7/modules/org-openide-awt.jar in jeder Distribution von NetBeans IDE) verwenden. Sie brauchen NetBeans nicht, um es auszuführen: nur dieses Jar, das Sie aus der NetBeans-Installation extrahiert haben.

+0

Es funktioniert, aber ich benutze es finnisch nicht, um nicht von einem externen jar in der App, die von JavaWebStart verteilt wird abhängen. Ich mache es, indem ich ein Popmenü an Punkt 0, comp.getHeight() des Knopfes zeige – Telcontar

Verwandte Themen