JPopupMenu

JPopupMenu är en Swing-komponent som används för att visa en popup-meny i applikationen. Pop-up-menyn är inget annat än ett litet fönster som dyker upp och visar en serie valmöjligheter för alla händelser som knappklick.

Exempel

  • Redigeringsmenyn kan innehålla alternativ som klipp, kopiera och klistra in.
  • Meny för en organisation kan innehålla alternativ som Hem, kontakta oss, om oss, fråga etc.

JPopupMenu är en klass som används i ett Swing-program. Här är förklaringen:

public class JPopupMenu utökar JComponent implementerar Accessible, MenuElement

JComponent basklass för alla Swing-komponenter utom behållare på toppnivå.

konstruktörer

JPopupMenu ()

Denna konstruktör konstruerar en JPopupMenu utan en invokerare.

JPopupMenu (String label)

Denna konstruktör konstruerar en JPopupMenu med en titel.

Låt oss förstå JPopupMenu med hjälp av ett exempel:

Program

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());
)
));
)
)

Förklaring

Detta är en applikation för alla organisationer som har grundläggande sidor som hem, fråga, om oss och kontakta oss.

  • Först har vi skapat en JFrame i storlek 400 med 400 pixlar. JFrame är ett toppfönster med titel och gräns.
  • Lade sedan till en knapp "Organisation" för att visa huvudmenyn för applikationen.
  • En etikett skapas för att visa status för applikationen (Vilket menypost som klickas på)
  • En popup-meny skapas med JPopupMenu-klassen och läggs till fyra menyalternativ till den - Hem, fråga, om oss och kontakta oss.
  • Index för menyposten räknas ut och visas med funktionen “getComponentIndex”.
  • Lade till en separator i slutet av menyn med funktionen "addSeparator".
  • En lyssnar läggs till för att visa menyfönstret genom att klicka på knappen.
  • Ytterligare en lyssnar läggs till för att ändra status när en meny dyker upp och även när man klickar på menyalternativ.
  • När användaren klickar på knappen "Organisation" öppnas ett popup-fönster med menyalternativ.
  • När du klickar på ett menyalternativ ändras “status”.

Produktion

  1. Detta är applikationen:

  1. När användaren klickade på "Organisation" visas en popup-meny:

  1. När användaren klickade på "Hem":

  1. När användaren klickade på ”Fråga”:

  1. När användaren klickade på "Om oss":

  1. När användaren klickade på “Kontakta oss”:

Metoder för JPopupMenu

Några av de användbara JPopupMenu-metoderna:

  1. JMenuItem add (Åtgärd a)

Denna metod lägger till ett menyalternativ i slutet av menyn och åtgärd för menyposten anges.

  1. JMenuItem lägg till (JMenuItem menuItem)

Denna metod lägger också till ett menyalternativ i slutet förutom att åtgärden för det här menyposten måste anges i JMenuItem.

  1. JMenuItemadd (String s)

Den här metoden skapar ett JMenuItem, lägger till i menyn och returnerar JMenuItem så att det kan konfigureras ytterligare.

  1. void addSeparator ()

Denna metod lägger till ett separatorutrymme i slutet av menyn.

  1. int getComponentIndex (komponent c)

Den här metoden returnerar indexet för den angivna komponenten i denna JPopupMenu.

  1. statisk booleska getDefaultLightWeightPopup Enabled ()

Den här metoden returnerar värdet för egenskapen defaultLightWeightPopupEnabled, som som standard är sant.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Den här metoden anger värdet för egenskapen defaultLightWeightPopupEnabled.

  1. String getLabel ()

Den här metoden returnerar etiketten på den här menyn.

  1. void setLabel (String label)

Denna metod anger etiketten för den här menyn.

  1. Insets getMargin ()

Denna metod returnerar marginalen, i pixlar, mellan gränsen för denna meny och dess behållare.

  1. boolean isLightWeightPopup Enabled ()

Denna metod returnerar egenskapen "lightWeightPopupEnabled".

  1. void setLightWeightPopupEnabled (boolean aFlag)

Den här metoden ställer in egenskapen "lightWeightPopupEnabled", som som standard är sant.

  1. boolean isVisible ()

Den här metoden returnerar den aktuella synligheten för den här menyn.

  1. void setVisible (boolean b)

Denna metod anger menyns synlighet.

  1. skyddad String paramString ()

Denna metod returnerar en strängrepresentation av den här menyn.

  1. tomrum ta bort (int pos)

Den här metoden tar bort komponenten vid det angivna indexet från den här menyn.

  1. void setLocation (int x, int y)

Denna metod anger platsen för det övre vänstra hörnet på den här menyn med x- och y-koordinater.

  1. void setPopupSize (int bredd, int höjd)

Den här metoden ställer in storleken på detta menyfönster till den angivna höjden och bredden.

  1. void setPopupSize (dimension d)

Den här metoden ställer in storleken på detta menyfönster till den angivna dimensionen.

  1. PopupMenuUI getUI ()

Den här metoden ger utseendet på denna meny.

  1. void setUI (PopupMenuUI ui)

Den här metoden ställer in utseendet och känslan i den här menyn.

  1. void updateUI ()

Den här metoden återställer utseendet på denna meny.

  1. void insert (Åtgärd a, int index)

Den här metoden infogar menyalternativet i menyn med angiven åtgärd i det angivna indexet.

  1. void insert (Component component, int index)

Den här metoden infogar menyalternativet i menyn vid det angivna indexet.

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

Den här metoden visar menyn i komponentinvokeraren vid positionen x, y i koordinatutrymmet.

  1. void addPopupMenuListener (PopupMenuListener l)

Den här metoden lägger till en lyssnare till denna popup-meny med hjälp av vilken vi kan kontrollera när popup-menyn är synlig, osynlig och avbruten.

Rekommenderade artiklar

Detta är en guide till JPopupMenu. Här diskuterar vi Exempel och konstruktör med Program och förklaring av JPopupMenu. Du kan också titta på följande artiklar för att lära dig mer -

  1. Java-kommentarer
  2. Fyrkantig rot i Java
  3. CardLayout i Java
  4. Skriv ut array i Java
  5. JLabel i Java
  6. Square Root i PHP

Kategori: