JPopupMenu

JPopupMenu er en Swing-komponent som brukes til å vise en popup-meny i applikasjonen. Pop-up-menyen er ingenting annet enn et lite vindu som dukker opp og viser en rekke valg på enhver hendelse som knappeklikk.

Eksempel

  • Redigeringsmeny kan inneholde alternativer som klipp ut, kopier og lim inn.
  • Meny for en organisasjon kan inneholde alternativer som Hjem, kontakt oss, om oss, forhør osv.

JPopupMenu er en klasse som brukes i et Swing-program. Her er erklæringen:

public class JPopupMenu utvider JComponent-implementer Accessible, MenuElement

JComponent baseklasse for alle Swing-komponenter unntatt toppnivåcontainere.

Constructors

JPopupMenu ()

Denne konstruktøren konstruerer en JPopupMenu uten en invoker.

JPopupMenu (strengetikett)

Denne konstruktøren konstruerer en JPopupMenu med en tittel.

La oss forstå JPopupMenu ved hjelp av et eksempel:

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

Forklaring

Dette er en applikasjon for enhver organisasjon som har grunnleggende sider som hjemme, spørre, om oss og kontakte oss.

  • Først har vi laget en JFrame i størrelse 400 med 400 piksler. JFrame er et toppnivåvindu med tittel og kant.
  • Så la du til en knapp "Organisasjon" for å vise hovedmenyen for applikasjonen.
  • Det opprettes en etikett for å vise status for applikasjonen (Hvilket menyelement som er klikket)
  • En popup-meny opprettes ved å bruke JPopupMenu-klassen og la fire menyelementer til den - Hjem, spør, om oss og kontakt oss.
  • Indeks over menyelementet er funnet ut og vist ved hjelp av funksjonen "getComponentIndex".
  • Lagt til en separator på slutten av menyen ved hjelp av funksjonen "addSeparator".
  • En lytter blir lagt til for å vise menyvinduet ved å klikke på knappen.
  • En annen lytter blir lagt til for å endre status når en meny vises, og også når du klikker på menyelementene.
  • Når brukeren klikker på "Organisasjon" -knappen, åpnes et popup-vindu med menyelementer.
  • Når du klikker på et menyelement, endres “status”.

Produksjon

  1. Dette er applikasjonen:

  1. Når brukeren klikket på “Organisasjon”, vises en popup-meny:

  1. Da brukeren klikket på “Hjem”:

  1. Da brukeren klikket på “Forespørsel”:

  1. Da brukeren klikket på “Om oss”:

  1. Da brukeren klikket på “Kontakt oss”:

Metoder for JPopupMenu

Noen av de nyttige JPopupMenu-metodene:

  1. JMenuItem add (Handling a)

Denne metoden legger til et menypunkt på slutten av menyen, og handling for menypunktet er spesifisert.

  1. JMenuItem legge til (JMenuItem menuItem)

Denne metoden legger også til et menyelement på slutten, bortsett fra at handlingen for dette menypunktet må spesifiseres i JMenuItem.

  1. JMenuItemadd (streng)

Denne metoden oppretter et JMenuItem, legger til i menyen og returnerer JMenuItem slik at det kan konfigureres videre.

  1. void addSeparator ()

Denne metoden legger til et separatorrom på slutten av menyen.

  1. int getComponentIndex (komponent c)

Denne metoden returnerer indeksen for den spesifiserte komponenten i denne JPopupMenu.

  1. statisk boolsk getDefaultLightWeightPopupEnabled ()

Denne metoden returnerer verdien til egenskapen defaultLightWeightPopupEnabled, som som standard er sann.

  1. statisk tomromsettDefaultLightWeightPopupEnabled (boolsk aFlag)

Denne metoden setter verdien på egenskapen defaultLightWeightPopupEnabled.

  1. String getLabel ()

Denne metoden returnerer etiketten til denne menyen.

  1. void setLabel (String label)

Denne metoden setter etiketten for denne menyen.

  1. Sett inn getMargin ()

Denne metoden returnerer margen, i piksler, mellom grensen til denne menyen og dens containere.

  1. boolean isLightWeightPopup Enabled ()

Denne metoden returnerer egenskapen “lightWeightPopupEnabled”.

  1. void setLightWeightPopupEnabled (boolsk aFlag)

Denne metoden setter egenskapen “lightWeightPopupEnabled”, som som standard er sant.

  1. boolean isVisible ()

Denne metoden returnerer gjeldende synlighet av denne menyen.

  1. void setVisible (boolsk b)

Denne metoden angir synligheten til menyen.

  1. beskyttet String paramString ()

Denne metoden returnerer en strengrepresentasjon av denne menyen.

  1. tomrom fjerne (int pos)

Denne metoden fjerner komponenten ved den spesifiserte indeksen fra denne menyen.

  1. void setLocation (int x, int y)

Denne metoden angir plasseringen av øverste venstre hjørne av denne menyen ved hjelp av x- og y-koordinater.

  1. void setPopupSize (int bredde, int høyde)

Denne metoden setter størrelsen på dette menyvinduet til den angitte høyden og bredden.

  1. void setPopupSize (dimensjon d)

Denne metoden setter størrelsen på dette menyvinduet til den spesifiserte dimensjonen.

  1. PopupMenuUI getUI ()

Denne metoden returnerer utseendet til denne menyen.

  1. ugyldig setUI (PopupMenuUI ui)

Denne metoden setter utseendet på denne menyen.

  1. ugyldig oppdateringUI ()

Denne metoden tilbakestiller utseendet til denne menyen.

  1. void insert (Handling a, int-indeks)

Denne metoden setter inn menypunktet i menyen med spesifisert handling ved den angitte indeksen.

  1. void insert (Component component, int index)

Denne metoden setter inn menypunktet i menyen ved den angitte indeksen.

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

Denne metoden viser menyen i komponentinnkalleren på posisjonen x, y i koordinatområdet.

  1. void addPopupMenuListener (PopupMenuListener l)

Denne metoden legger til en lytter til denne popup-menyen ved hjelp av hvilken vi kan sjekke når popup-menyen er synlig, usynlig og kansellert.

Anbefalte artikler

Dette er en guide til JPopupMenu. Her diskuterer vi Eksempel og konstruktør med Program og forklaring av JPopupMenu. Du kan også se på følgende artikler for å lære mer -

  1. Java-merknader
  2. Square Root i Java
  3. CardLayout i Java
  4. Print Array i Java
  5. JLabel i Java
  6. Square Root i PHP