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

  1. Dit is de applicatie:

  1. Wanneer de gebruiker op "Organisatie" klikte, wordt een pop-upmenu weergegeven:

  1. Wanneer de gebruiker op "Home" klikte:

  1. Wanneer de gebruiker op "Informatie" klikte:

  1. Wanneer de gebruiker op "Over ons" klikte:

  1. Wanneer de gebruiker op "Contact" klikte:

Methoden van JPopupMenu

Enkele nuttige JPopupMenu-methoden:

  1. 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.

  1. 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.

  1. JMenuItemadd (String s)

Deze methode maakt een JMenuItem, voegt toe aan het menu en retourneert het JMenuItem zodat het verder kan worden geconfigureerd.

  1. void addSeparator ()

Deze methode voegt een scheidingsruimte toe aan het einde van het menu.

  1. int getComponentIndex (Component c)

Deze methode retourneert de index van de opgegeven component in dit JPopupMenu.

  1. statische boolean getDefaultLightWeightPopupEnabled ()

Deze methode retourneert de waarde van de eigenschap defaultLightWeightPopupEnabled, die standaard waar is.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Met deze methode wordt de waarde van de eigenschap defaultLightWeightPopupEnabled ingesteld.

  1. String getLabel ()

Deze methode retourneert het label van dit menu.

  1. void setLabel (Stringlabel)

Met deze methode wordt het label voor dit menu ingesteld.

  1. Insets getMargin ()

Deze methode retourneert de marge, in pixels, tussen de rand van dit menu en de bijbehorende containers.

  1. boolean isLightWeightPopupEnabled ()

Deze methode retourneert de eigenschap "lightWeightPopupEnabled".

  1. void setLightWeightPopupEnabled (boolean aFlag)

Met deze methode wordt de eigenschap "lightWeightPopupEnabled" ingesteld, die standaard waar is.

  1. boolean isVisible ()

Deze methode retourneert de huidige zichtbaarheid van dit menu.

  1. void setVisible (boolean b)

Met deze methode wordt de zichtbaarheid van het menu ingesteld.

  1. beschermde tekenreeks paramString ()

Deze methode retourneert een stringvoorstelling van dit menu.

  1. nietig verwijderen (int pos)

Met deze methode wordt het onderdeel met de opgegeven index uit dit menu verwijderd.

  1. 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.

  1. void setPopupSize (int breedte, int hoogte)

Met deze methode wordt de grootte van dit menuvenster ingesteld op de opgegeven hoogte en breedte.

  1. void setPopupSize (dimensie d)

Met deze methode wordt de grootte van dit menuvenster ingesteld op de opgegeven dimensie.

  1. PopupMenuUI getUI ()

Deze methode geeft het uiterlijk van dit menu terug.

  1. void setUI (PopupMenuUI ui)

Met deze methode wordt het uiterlijk van dit menu ingesteld.

  1. void updateUI ()

Deze methode reset het uiterlijk van dit menu.

  1. 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.

  1. void insert (componentcomponent, int index)

Met deze methode wordt het menu-item in het menu ingevoegd bij de opgegeven index.

  1. void show (Component invoker, int x, int y)

Deze methode toont het menu in de componentinroeper op positie x, y in de coördinaatruimte.

  1. 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 -

  1. Java-annotaties
  2. Vierkantswortel in Java
  3. CardLayout in Java
  4. Array afdrukken in Java
  5. JLabel in Java
  6. Vierkantswortel in PHP