Ein Popup Menu ist ein Kontexmenü, welches von einer Komponente mit Hilfe der folgenden Methode erzeugt werden kann:
IPopupMenu createPopupMenu();
Dabei können für eine Komponente beliebig viele Popup Menüs erzeugt werden.
Die Schnittstelle IPopupMenu
hat neben den
von
IMenu
und
IWidget
geerbten Methoden die folgende weitere zur Anzeige des Menüs:
void show(Position position);
Die position
muss dabei bezüglich des
Koordinatensystems angegeben werden, welches das PopupMenu
erzeugt hat und darf nicht null
sein.
Folgendes Beispiel zeigt die Verwendung eines PopMenüs:
1 //create the popup menu
2 IPopupMenu menu = frame.createPopupMenu();
3
4 //add items to the menu
5 IActionMenuItem action1 = menu.addItem(BPF.menuItem("Action1"));
6 IActionMenuItem action2 = menu.addItem(BPF.menuItem("Action1"));
7 menu.addSeparator();
8 ISelectableMenuItem option1 = menu.addItem(BPF.checkedMenuItem("Option1").setSelected(true));
9 ISelectableMenuItem option2 = menu.addItem(BPF.checkedMenuItem("Option2"));
10 menu.addSeparator();
11 ISelectableMenuItem radio1 = menu.addItem(BPF.radioMenuItem("Radio1").setSelected(true));
12 ISelectableMenuItem radio2 = menu.addItem(BPF.radioMenuItem("Radio2"));
13 ISelectableMenuItem radio3 = menu.addItem(BPF.radioMenuItem("Radio3"));
14 menu.addSeparator();
15 ISubMenu subMenu = menu.addItem(BPF.subMenu("Sub Menu"));
16 subMenu.addItem(BPF.menuItem("Subaction"));
17
18 //add a popup detection listener that shows the menu
19 frame.addPopupDetectionListener(new IPopupDetectionListener() {
20 @Override
21 public void popupDetected(final Position position) {
22 menu.show(position);
23 }
24 });
In Zeile 2 wird ein neues PopupMenu erzeugt. In den Zeilen 5 - 16 werden diesem Items hinzugefügt. In Zeile 19 wird ein PopupDetectionListener hinzugefügt, der das Menü bei einem PopupEvent sichtbar macht. Die folgende Abbildung zeigt das Ergebnis: