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:
final
KontextováPonuka
mojaKontextováPonuka =new
KontextováPonuka
();// Vytvoríme všetky položky, niektoré priamo pridávajúc do ponuky:
final
KontextováPoložka
novýObjekt = mojaKontextováPonuka.pridajPoložku
("Nový objekt"
);final
KontextováPoložka
preusporiadať = mojaKontextováPonuka.pridajPoložku
("Preusporiadať"
);final
KontextováPoložka
ďalšiaAkcia1 =new
KontextováPoložka
("Ďalšia akcia 1"
);final
KontextováPoložka
ďalšiaAkcia2 =new
KontextováPoložka
("Ďalšia akcia 2"
);final
KontextováPoložka
ďalšiaAkcia3 =new
Kontextová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í:
new
ObsluhaUdalostí
() {@
Overridepublic
void
klik
() {// Kontextová ponuka sa zobrazí po stlačení pravého tlačidla:
if
(ÚdajeUdalostí
.tlačidloMyši
(PRAVÉ
)) mojaKontextováPonuka.zobraz
(); }@
Overridepublic
void
voľbaKontextovejPoložky
() {// Zistíme, ktorá kontextová položka bola zvolená:
KontextováPoložka
polož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.Separator
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, 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, updateUI
addAncestorListener, 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, update
add, 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, validateTree
action, 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, transferFocusUpCycle
public 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ť null
public 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ť null
public 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 JPopupMenu
text
– 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 JPopupMenu
text
– text popisu ponuky; nesmie byť null
popis(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 JPopupMenu
null
ak ponuka nemôže
mať popispopis()