JPopupMenu
JPopupMenu is een Swing-component die wordt gebruikt om een pop-upmenu in de toepassing weer te geven. Pop-upmenu is niets anders dan een klein venster dat verschijnt en een reeks keuzes toont bij elke gebeurtenis, zoals het klikken op een knop.
Voorbeeld
- Het menu Bewerken kan opties bevatten zoals knippen, kopiëren en plakken.
- Menu voor een organisatie kan opties bevatten zoals Home, contact met ons opnemen, over ons, informeren, etc.
JPopupMenu is een klasse die wordt gebruikt in een Swing-toepassing. Hier is de verklaring:
public class JPopupMenu breidt JComponent implementeert toegankelijk, MenuElement
JComponent-basisklasse voor alle Swing-componenten behalve containers op het hoogste niveau.
constructors
JPopupMenu ()
Deze constructor construeert een JPopupMenu zonder een invoker.
JPopupMenu (String-label)
Deze constructor construeert een JPopupMenu met een titel.
Laten we JPopupMenu begrijpen met behulp van een voorbeeld:
Programma
package application;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
public class JPopupMenuDemo (
public static void main(String() args) (
JFrame app = new JFrame();
JButton organization = new JButton("Organization");
app.add(organization);
app.setSize(400, 400);
app.setLayout(new GridLayout(2, 1));
app.setVisible(true);
organization.setVisible(true);
JPopupMenu menu = new JPopupMenu("Menu");
JLabel status = new JLabel();
status.setHorizontalTextPosition(SwingConstants.CENTER);
status.setVerticalTextPosition(SwingConstants.CENTER);
app.add(status);
ActionListener listener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
);
JMenuItem enquire = new JMenuItem("Enquire");
enquire.addActionListener(listener);
JMenuItem aboutUs = new JMenuItem("About Us");
aboutUs.addActionListener(listener);
JMenuItem home = menu.add("Home");
home.addActionListener(listener);
JMenuItem contactUs = menu.add(new AbstractAction() (
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) (
status.setText(e.getActionCommand());
status.setVisible(true);
)
));
menu.add(enquire);
menu.add(aboutUs);
menu.add(contactUs);
home.setText("Home. Index - " + menu.getComponentIndex(home));
enquire.setText("Enquire. Index - " + menu.getComponentIndex(enquire));
aboutUs.setText("About Us. Index - " + menu.getComponentIndex(aboutUs));
contactUs.setText("Contact Us. Index - " + menu.getComponentIndex(contactUs));
menu.addPopupMenuListener(new PopupMenuListener() (
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) (
status.setText("Popup menu is visible now.");
status.setVisible(true);
)
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) (
status.setText("Popup menu is invisible now.");
)
@Override
public void popupMenuCanceled(PopupMenuEvent e) (
status.setText("Popup menu is cancelled now.");
)
));
organization.addMouseListener(new MouseAdapter() (
public void mouseClicked(MouseEvent e) (
menu.show(app, e.getX(), e.getY());
)
));
)
)
Uitleg
Dit is een applicatie voor elke organisatie met basispagina's zoals thuis, informeer naar ons en neem contact met ons op.
- Eerst hebben we een JFrame van 400 bij 400 pixels gemaakt. JFrame is een hoofdvenster met titel en rand.
- Vervolgens een knop "Organisatie" toegevoegd om het hoofdmenu van de applicatie te tonen.
- Er wordt een label gemaakt om de status van de toepassing weer te geven (op welk menu-item wordt geklikt)
- Er wordt een pop-upmenu gemaakt met de klasse JPopupMenu en hieraan zijn vier menu-items toegevoegd - Home, informeer naar ons en neem contact met ons op.
- Index van het menu-item wordt uitgezocht en getoond met behulp van de functie "getComponentIndex".
- Een scheidingsteken toegevoegd aan het einde van het menu met de functie "addSeparator".
- Een luisteraar wordt toegevoegd om het menuvenster weer te geven bij een klik op de knop.
- Nog een luisteraar wordt toegevoegd om de status te wijzigen wanneer een menu wordt weergegeven en ook wanneer op menu-items wordt geklikt.
- Wanneer de gebruiker op de knop "Organisatie" klikt, wordt een pop-upvenster geopend met menu-items.
- Wanneer op een menu-item wordt geklikt, wordt "status" gewijzigd.
uitgang
- Dit is de applicatie:
- Wanneer de gebruiker op "Organisatie" klikte, wordt een pop-upmenu weergegeven:
- Wanneer de gebruiker op "Home" klikte:
- Wanneer de gebruiker op "Informatie" klikte:
- Wanneer de gebruiker op "Over ons" klikte:
- Wanneer de gebruiker op "Contact" klikte:
Methoden van JPopupMenu
Enkele nuttige JPopupMenu-methoden:
- JMenuItem add (Actie a)
Deze methode voegt een menu-item toe aan het einde van het menu en actie voor het menu-item wordt gespecificeerd.
- JMenuItem add (JMenuItem menuItem)
Deze methode voegt aan het einde ook een menu-item toe, behalve dat actie voor dit menu-item moet worden opgegeven in JMenuItem.
- JMenuItemadd (String s)
Deze methode maakt een JMenuItem, voegt toe aan het menu en retourneert het JMenuItem zodat het verder kan worden geconfigureerd.
- void addSeparator ()
Deze methode voegt een scheidingsruimte toe aan het einde van het menu.
- int getComponentIndex (Component c)
Deze methode retourneert de index van de opgegeven component in dit JPopupMenu.
- statische boolean getDefaultLightWeightPopupEnabled ()
Deze methode retourneert de waarde van de eigenschap defaultLightWeightPopupEnabled, die standaard waar is.
- static void setDefaultLightWeightPopupEnabled (boolean aFlag)
Met deze methode wordt de waarde van de eigenschap defaultLightWeightPopupEnabled ingesteld.
- String getLabel ()
Deze methode retourneert het label van dit menu.
- void setLabel (Stringlabel)
Met deze methode wordt het label voor dit menu ingesteld.
- Insets getMargin ()
Deze methode retourneert de marge, in pixels, tussen de rand van dit menu en de bijbehorende containers.
- boolean isLightWeightPopupEnabled ()
Deze methode retourneert de eigenschap "lightWeightPopupEnabled".
- void setLightWeightPopupEnabled (boolean aFlag)
Met deze methode wordt de eigenschap "lightWeightPopupEnabled" ingesteld, die standaard waar is.
- boolean isVisible ()
Deze methode retourneert de huidige zichtbaarheid van dit menu.
- void setVisible (boolean b)
Met deze methode wordt de zichtbaarheid van het menu ingesteld.
- beschermde tekenreeks paramString ()
Deze methode retourneert een stringvoorstelling van dit menu.
- nietig verwijderen (int pos)
Met deze methode wordt het onderdeel met de opgegeven index uit dit menu verwijderd.
- void setLocation (int x, int y)
Met deze methode wordt de locatie van de linkerbovenhoek van dit menu ingesteld met behulp van x- en y-coördinaten.
- void setPopupSize (int breedte, int hoogte)
Met deze methode wordt de grootte van dit menuvenster ingesteld op de opgegeven hoogte en breedte.
- void setPopupSize (dimensie d)
Met deze methode wordt de grootte van dit menuvenster ingesteld op de opgegeven dimensie.
- PopupMenuUI getUI ()
Deze methode geeft het uiterlijk van dit menu terug.
- void setUI (PopupMenuUI ui)
Met deze methode wordt het uiterlijk van dit menu ingesteld.
- void updateUI ()
Deze methode reset het uiterlijk van dit menu.
- void insert (actie a, int index)
Met deze methode wordt het menu-item in het menu ingevoegd met de opgegeven actie bij de opgegeven index.
- void insert (componentcomponent, int index)
Met deze methode wordt het menu-item in het menu ingevoegd bij de opgegeven index.
- void show (Component invoker, int x, int y)
Deze methode toont het menu in de componentinroeper op positie x, y in de coördinaatruimte.
- void addPopupMenuListener (PopupMenuListener l)
Deze methode voegt een luisteraar toe aan dit pop-upmenu met behulp waarvan we kunnen controleren wanneer het pop-upmenu zichtbaar, onzichtbaar en geannuleerd is.
Aanbevolen artikelen
Dit is een gids voor JPopupMenu. Hier bespreken we het voorbeeld en de constructor met programma en uitleg van JPopupMenu. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Java-annotaties
- Vierkantswortel in Java
- CardLayout in Java
- Array afdrukken in Java
- JLabel in Java
- Vierkantswortel in PHP