public class KontextováPonuka extends JPopupMenu
Trieda KontextováPonuka spolu s triedou KontextováPoložka umožňujú používanie kontextových
ponúk. Voľba položky kontextovej ponuky spôsobí vznik udalosti voľbaKontextovejPoložky.
V uvedenej obsluhe udalosti môžeme zistiť, ktorá položka bola zvolená
metódou ÚdajeUdalostí.kontextováPoložka().
// Vytvoríme ponuku:finalKontextováPonukamojaKontextováPonuka =newKontextováPonuka();// Vytvoríme všetky položky, niektoré priamo pridávajúc do ponuky:finalKontextováPoložkanovýObjekt = mojaKontextováPonuka.pridajPoložku("Nový objekt");finalKontextováPoložkapreusporiadať = mojaKontextováPonuka.pridajPoložku("Preusporiadať");finalKontextováPoložkaďalšiaAkcia1 =newKontextováPoložka("Ďalšia akcia 1");finalKontextováPoložkaďalšiaAkcia2 =newKontextováPoložka("Ďalšia akcia 2");finalKontextováPoložkaďalšiaAkcia3 =newKontextováPoložka("Ďalšia akcia 3");// Pridáme oddeľovač a vnorenú ponuku:mojaKontextováPonuka.pridajOddeľovač(); mojaKontextováPonuka.pridajPonuku("Ďalšie akcie", ďalšiaAkcia1, ďalšiaAkcia2,null, ďalšiaAkcia3);// Definujeme obsluhu udalostí:newObsluhaUdalostí() {@Overridepublicvoidklik() {// Kontextová ponuka sa zobrazí po stlačení pravého tlačidla:if(ÚdajeUdalostí.tlačidloMyši(PRAVÉ)) mojaKontextováPonuka.zobraz(); }@OverridepublicvoidvoľbaKontextovejPoložky() {// Zistíme, ktorá kontextová položka bola zvolená:KontextováPoložkapoložka =ÚdajeUdalostí.kontextováPoložka();// Na základe voľby vykonáme akciu:// …if(novýObjekt == položka) {Svet.správa("Zvolená položka „Nový objekt.“"); }else if(preusporiadať == položka) {Svet.správa("Zvolená položka „Preusporiadať.“"); }else if(ďalšiaAkcia1 == položka) {Svet.správa("Zvolená položka „Ďalšia akcia 1.“"); }else if(ďalšiaAkcia2 == položka) {Svet.správa("Zvolená položka „Ďalšia akcia 2.“"); }else if(ďalšiaAkcia3 == položka) {Svet.správa("Zvolená položka „Ďalšia akcia 3.“"); } } };
Výsledok:
![]() |
![]() | |
Ukážka kontextovej ponuky vytvorenej
príkladom |
Ukážka kontextovej ponuky vytvorenej
príkladom |
JPopupMenu.AccessibleJPopupMenu, JPopupMenu.SeparatorJComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Konštruktor a opis |
|---|
KontextováPonuka()
Vytvorí novú kontextovú ponuku (bez titulného popisu, ktorý
nebude možné pridať ani dodatočne).
|
KontextováPonuka(String popis)
Vytvorí kontextovú ponuku s titulným popisom.
|
| Modifikátor a typ | Metóda a opis |
|---|---|
JMenuItem |
add(String text)
Vytvorí novú položku ponuky so zadaným textom a pripojí ju na
koniec ponuky.
|
String |
getLabel()
|
String |
popis()
|
void |
popis(String text)
|
void |
pridajOddelovac()
Alias pre pridajOddeľovač. |
void |
pridajOddeľovač()
Pridá nový oddeľovač položiek na koniec ponuky.
|
JMenuItem |
pridajPolozku(JMenuItem položka)
Alias pre pridajPoložku. |
KontextováPoložka |
pridajPolozku(String text)
Alias pre pridajPoložku. |
JMenuItem |
pridajPoložku(JMenuItem položka)
Pripojí na koniec ponuky novú kontextovú položku, ktorej
vytvorenie musí zabezpečiť programátor.
|
KontextováPoložka |
pridajPoložku(String text)
Vytvorí novú položku ponuky so zadaným textom a pripojí ju na
koniec ponuky.
|
JMenuItem |
pridajPonuku(String text,
JMenuItem... položky)
Vytvorí novú vnorenú ponuku zo zadaných položiek a pripojí ju na
koniec aktuálnej ponuky.
|
void |
setLabel(String text)
|
static JMenu |
vytvorPonuku(String text,
JMenuItem... položky)
Vytvorí novú ponuku zo zadaných položiek.
|
void |
zobraz()
Zobrazí kontextovú ponuku na poslednej zaznamenanej pozícii myši.
|
void |
zobraz(double x,
double y)
Zobrazí kontextovú ponuku nad plátnom na zadanej pozícii.
|
add, add, addMenuKeyListener, addPopupMenuListener, addSeparator, createActionComponent, createActionChangeListener, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getComponent, getComponentAtIndex, getComponentIndex, getDefaultLightWeightPopupEnabled, getInvoker, getMargin, getMenuKeyListeners, getPopupMenuListeners, getSelectionModel, getSubElements, getUI, getUIClassID, insert, insert, isBorderPainted, isLightWeightPopupEnabled, isPopupTrigger, isVisible, menuSelectionChanged, pack, paintBorder, paramString, processFocusEvent, processKeyEvent, processKeyEvent, processMouseEvent, remove, removeMenuKeyListener, removePopupMenuListener, setBorderPainted, setDefaultLightWeightPopupEnabled, setInvoker, setLightWeightPopupEnabled, setLocation, setPopupSize, setPopupSize, setSelected, setSelectionModel, setUI, setVisible, show, updateUIaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getĎalšieFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintComponent, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printComponent, printChildren, processComponentKeyEvent, processKeyBinding, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setĎalšieFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMetódy, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, checkImage, checkImage, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic KontextováPonuka()
Vytvorí novú kontextovú ponuku (bez titulného popisu, ktorý nebude možné pridať ani dodatočne).
public KontextováPonuka(String popis)
Vytvorí kontextovú ponuku s titulným popisom. Parameter text
nesmie byť null a môže byť dodatočne upravovaný metódou
popis(String text).
popis – text popisu ponuky; nesmie byť nullpublic JMenuItem pridajPoložku(JMenuItem položka)
Pripojí na koniec ponuky novú kontextovú položku, ktorej vytvorenie musí zabezpečiť programátor.
položka – nová kontextová položka (môže byť aj typu
KontextováPoložka), ktorú treba
pridať na koniec ponukypridajPoložku(String),
pridajOddeľovač(),
pridajPonuku(String, JMenuItem[]),
vytvorPonuku(String, JMenuItem[])public JMenuItem pridajPolozku(JMenuItem položka)
Alias pre pridajPoložku.
public KontextováPoložka pridajPoložku(String text)
Vytvorí novú položku ponuky so zadaným textom a pripojí ju na koniec ponuky.
text – text novej kontextovej položkypridajPoložku(JMenuItem),
pridajOddeľovač(),
pridajPonuku(String, JMenuItem[]),
vytvorPonuku(String, JMenuItem[])public KontextováPoložka pridajPolozku(String text)
Alias pre pridajPoložku.
public void pridajOddeľovač()
Pridá nový oddeľovač položiek na koniec ponuky.
public void pridajOddelovac()
Alias pre pridajOddeľovač.
public JMenuItem pridajPonuku(String text, JMenuItem... položky)
Vytvorí novú vnorenú ponuku zo zadaných položiek a pripojí ju na
koniec aktuálnej ponuky. Ak je niektorá zo zadaných položiek
null, je do ponuky vložený oddeľovač.
text – text položky novej vnorenej ponukypoložky – zoznam položiekpridajPoložku(JMenuItem),
pridajOddeľovač(),
vytvorPonuku(String, JMenuItem[])public static JMenu vytvorPonuku(String text, JMenuItem... položky)
Vytvorí novú ponuku zo zadaných položiek. Využiteľné na vytváranie
kaskádových ponúk. Ak je niektorá zo zadaných položiek null, tak je do ponuky vložený oddeľovač.
text – text položky novej vnorenej ponukypoložky – zoznam položiekpridajPoložku(JMenuItem),
pridajOddeľovač(),
pridajPonuku(String, JMenuItem[])public void popis(String text)
Nastaví text popisu ponuky.
Má zmysel len v prípade, že ponuka bola vytvorená konštruktorom:
KontextováPonuka(popis). Parameter text nesmie byť
null.
(Pozri aj:
JPopupMenu.setLabel(String).)
text – text popisu ponuky; nesmie byť nullpublic String popis()
Vráti popis kontextovej ponuky.
Má zmysel len v prípade, že ponuka bola vytvorená konštruktorom:
KontextováPonuka(popis).
null ak ponuka nemôže
mať popispublic void zobraz()
Zobrazí kontextovú ponuku na poslednej zaznamenanej pozícii myši.
public void zobraz(double x,
double y)
Zobrazí kontextovú ponuku nad plátnom na zadanej pozícii.
x – x-ová súradnica polohy na zobrazenie ponukyy – y-ová súradnica polohy na zobrazenie ponukypublic JMenuItem add(String text)
Vytvorí novú položku ponuky so zadaným textom a pripojí ju na koniec ponuky.
Poznámka: Táto metóda prekrýva originálnu
metódu JPopupMenu.add(String).
add v triede JPopupMenutext – text novej kontextovej položkyJMenuItem, vrátený objekt je typu KontextováPoložka, t. j. výsledok môže byť
bez rizika pretypovanýpridajPoložku(String)public void setLabel(String text)
Nastaví text popisu ponuky. Má zmysel len
v prípade, že ponuka bola vytvorená konštruktorom: KontextováPonuka(popis).
Parameter text nesmie byť null.
Poznámka: Táto metóda prekrýva originálnu
metódu JPopupMenu.setLabel(String).
setLabel v triede JPopupMenutext – text popisu ponuky; nesmie byť nullpopis(String)public String getLabel()
Vráti popis kontextovej ponuky. Má zmysel
len v prípade, že ponuka bola vytvorená konštruktorom: KontextováPonuka(popis).
Poznámka: Táto metóda prekrýva originálnu
metódu JPopupMenu.getLabel().
getLabel v triede JPopupMenunull ak ponuka nemôže
mať popispopis()