Ein Popupmenu bietet ähnliche Funktionalität wie ein normales Menu, das in einer Menubar angebracht ist. Der Unterschied zu einem normalen Menu besteht darin, das es an jeder beliebigen Position innerhalb der Applikation geöffnet werden kann. Das folgende Beispiel öffnet ein Popupmenu in einem Frame, sobald ein Menupunkt ''Popup'' in der normalen Menuleiste angewählt wird:
/* Example popupmenu.c */ : frame = j_frame("Popup Menu Demo"); menubar = j_menubar(frame); file = j_menu(menubar,"Do it"); popup = j_menuitem(file,"Popup"); choose = j_popupmenu(frame,"Choose"); close = j_menuitem(choose,"Close"); quit = j_menuitem(choose,"Quit"); j_show(frame); while(1) { obj=j_nextaction(); if(obj==popup) j_showpopup(choose,100,100); if(obj==quit) break; } :
Folgende drei Programmzeilen bauen die Elemente des Popupmenüs auf:
choose = j_popupmenu(frame,"Choose"); close = j_menuitem(choose,"Close"); quit = j_menuitem(choose,"Quit");
Der Aufbeu eines Popupmenüs erfolgt analog zu einer Standartmenüzeile (siehe Kapitel 2.2). Als Aufnahme-Element ist dabei jedoch keine Menubar erforderlich. Im Beispiel wird der Menueintrag an den Frame der Applikation gebunden. Prinzipiell kann an jedes graphische Element (außer den Menuelementen selbst) ein Popupmenu angebunden werden. Als Menueinträge dienen die normalen Menuitems.
Ein Popupmenu wird durch Aufruf der Funktion:
j_showpopup(choose,100,100);
sichtbar. Die beiden hinteren Parameter geben die x,y Position an, an der das Popupmenu erscheinen soll. Sobald ein (oder kein) Menuitem ausgewählt wurde, verschwindet das Popupmenu automatisch. Daher ist keine entsprechende Funktion zum Schließen des Popupmenu vorhanden.