|
| 1 | +# JavaFX kontejnery (MenuBar, Menu, ContextMenu, TableView, WebView a.j.) |
| 2 | + |
| 3 | +Menu neboli nabídka. |
| 4 | +Sada Nodů (uzlů), která realizuje většinou horní lištu se základními, ale i pokročilými funkcemi aplikace. |
| 5 | + |
| 6 | +## Uzly |
| 7 | +### MenuBar |
| 8 | +- uzel, který vytváří lištu nabídky (kořenový node celé nabídky) |
| 9 | +- sám o sobě nemá žádnou fuknci, jenom vytváří prostředí pro další node z nabídky |
| 10 | +### Menu |
| 11 | +- základní uzel, který umožňuje pod sebou seskupovat další uzly nabídky včetně sebe samého |
| 12 | +- pokud Menu obsahuje nějaké další uzly, dochází k jeho rozrolování (roletové menu) |
| 13 | +- je možné doplnit o mnemonic funkci (tj. jedno písmeno z nabídky je podtržené a kombinací kláves Alt+to písmenu vyvoláte tuto nabídku) |
| 14 | +```java |
| 15 | +setMnemonicParsing(true); |
| 16 | +``` |
| 17 | +### MenuItem |
| 18 | +- jedna položka v Menu, není rolovatelná, jedná se o konkrétní operaci |
| 19 | +- defakto se jedná o ekvivalenci pro Button v nabídce |
| 20 | +- je možné definovat akcelerátory (klávesové zkratky) |
| 21 | +```java |
| 22 | + menuItem.setAccelerator(KeyCombination.keyCombination(“Shift+Ctrl+F8”)); |
| 23 | + ``` |
| 24 | +### SeparatorMenuItem |
| 25 | +- nemá žádnou funkci |
| 26 | +- je to pouze oddělovač nesouvisejících voleb |
| 27 | +### CheckMenuItem / RadioMenuItem |
| 28 | +- obdoba RadioButtonu (1:N) a CheckBox (M:N) |
| 29 | + |
| 30 | +Příklad: |
| 31 | +```java |
| 32 | +MenuBar mb = new MenuBar(); |
| 33 | +Menu m = new Menu(“File”); |
| 34 | +MenuItem mi= new MenuItem(“Open”); |
| 35 | +mi.setAccelerator(KeyCombination.keyCombination(“Ctrl+O”)); |
| 36 | +m.getItems().add(mi); |
| 37 | +mb.getMenus().add(m); |
| 38 | +``` |
| 39 | +Kontextové menu (PopUp menu) |
| 40 | + |
| 41 | +Místo MenuBar používáme objekt typu ContextMenu. |
| 42 | +Příklad: |
| 43 | +```java |
| 44 | +ContextMenu cm = new ContextMenu(); |
| 45 | +MenuItem mic = new MenuItem(“Clear”); |
| 46 | +Menu mc = Menu(“Volby”); |
| 47 | +MenuItem micv = MenuItem(“Add”); |
| 48 | +mc.getItems().add(micv); |
| 49 | +cm.getItems().addAll(mic, mc); |
| 50 | +TextField display = new TextField(); |
| 51 | +display.setOnContextMenuRequested(new EventHander<ContextMenuEvent>(){ |
| 52 | + public void handle(ContextMenuEvent e){ |
| 53 | + contextMenu.show(display, e.getScreenX(), e.getScreenY()); |
| 54 | + } |
| 55 | +}) |
| 56 | +``` |
0 commit comments