JPopupMenu

JPopupMenu er en Swing-komponent, der bruges til at vise en popup-menu i applikationen. Pop-up-menuen er intet andet end et lille vindue, der dukker op og viser en række valg på enhver begivenhed, som f.eks.

Eksempel

  • Redigeringsmenu kan indeholde indstillinger som klip, kopier og indsæt
  • Menu til en organisation kan indeholde indstillinger som Hjem, kontakt os, om os, forhør osv.

JPopupMenu er en klasse, der bruges i et Swing-program. Her er erklæringen:

public class JPopupMenu udvider JComponent implementerer Accessible, MenuElement

JComponent-baseklasse for alle Swing-komponenter undtagen containere på topniveau.

Constructors

JPopupMenu ()

Denne konstruktør konstruerer en JPopupMenu uden en invoker.

JPopupMenu (String label)

Denne konstruktør konstruerer en JPopupMenu med en titel.

Lad os forstå JPopupMenu ved hjælp af 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 applikation til enhver organisation, der har basalsider som hjem, forhør, om os og kontakt os.

  • Først har vi oprettet en JFrame i størrelse 400 x 400 pixels. JFrame er et topniveauvindue med titel og kant.
  • Derefter tilføjede en knap "Organisation" for at vise programmenes hovedmenu.
  • Der oprettes en etiket for at vise status for applikationen (Hvilket menupunkt der klikkes på)
  • En popup-menu oprettes ved hjælp af JPopupMenu-klassen og tilføjes fire menupunkter til den - Hjem, forhør, om os og kontakt os.
  • Indeks for menupunktet er fundet ud og vist ved hjælp af funktionen “getComponentIndex”.
  • Tilføjet en separator i slutningen af ​​menuen ved hjælp af funktionen "addSeparator".
  • En lytter tilføjes for at vise menuvinduet ved at klikke på knappen.
  • En yderligere lytter tilføjes for at ændre status, når der vises en menu, og også når der klikkes på menupunkter.
  • Når brugeren klikker på knappen "Organisation", åbnes et popup-vindue med menupunkter.
  • Når der klikkes på et menupunkt, ændres “status”.

Produktion

  1. Dette er applikationen:

  1. Når brugeren klikkede på “Organisation” vises en popup-menu:

  1. Da brugeren klikkede på “Hjem”:

  1. Da brugeren klikkede på "Forespørg":

  1. Da brugeren klikkede på “Om os”:

  1. Da brugeren klikkede på “Kontakt os”:

Metoder til JPopupMenu

Nogle af de nyttige JPopupMenu-metoder:

  1. JMenuItem tilføj (handling a)

Denne metode tilføjer et menupunkt i slutningen af ​​menuen, og handling for menupunktet specificeres.

  1. JMenuItem tilføje (JMenuItem menuItem)

Denne metode tilføjer også et menupunkt i slutningen, bortset fra at handlingen til dette menupunkt skal specificeres i JMenuItem.

  1. JMenuItemadd (streng)

Denne metode opretter et JMenuItem, tilføjer til menuen og returnerer JMenuItem, så det kan konfigureres yderligere.

  1. void addSeparator ()

Denne metode tilføjer et separatorområde i slutningen af ​​menuen.

  1. int getComponentIndex (komponent c)

Denne metode returnerer indekset for den specificerede komponent i denne JPopupMenu.

  1. statisk boolsk getDefaultLightWeightPopupEnabled ()

Denne metode returnerer værdien af ​​egenskaben defaultLightWeightPopupEnabled, som som standard er sand.

  1. statisk tomrumssætDefaultLightWeightPopupEnabled (boolsk aFlag)

Denne metode indstiller værdien af ​​egenskaben defaultLightWeightPopupEnabled.

  1. String getLabel ()

Denne metode returnerer etiketten i denne menu.

  1. void setLabel (String label)

Denne metode indstiller etiketten til denne menu.

  1. Indsæt getMargin ()

Denne metode returnerer margen, i pixels, mellem grænsen til denne menu og dens containere.

  1. boolsk isLightWeightPopupEnabled ()

Denne metode returnerer egenskaben "lightWeightPopupEnabled".

  1. void setLightWeightPopupEnabled (boolsk aFlag)

Denne metode indstiller egenskaben "lightWeightPopupEnabled", som som standard er sand.

  1. boolsk er Synlig ()

Denne metode returnerer den aktuelle synlighed af denne menu.

  1. void setVisible (boolsk b)

Denne metode indstiller synligheden af ​​menuen.

  1. beskyttet String paramString ()

Denne metode returnerer en strengrepræsentation af denne menu.

  1. tomrum fjerne (int pos)

Denne metode fjerner komponenten ved det specificerede indeks fra denne menu.

  1. void setLocation (int x, int y)

Denne metode indstiller placeringen af ​​det øverste venstre hjørne af denne menu ved hjælp af x- og y-koordinater.

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

Denne metode indstiller størrelsen på dette menuvindue til den specificerede højde og bredde.

  1. void setPopupSize (Dimension d)

Denne metode indstiller størrelsen på dette menuvindue til den specificerede dimension.

  1. PopupMenuUI getUI ()

Denne metode giver udseendet og fornemmelsen i denne menu.

  1. void setUI (PopupMenuUI ui)

Denne metode indstiller udseendet og følelsen af ​​denne menu.

  1. ugyldig opdateringUI ()

Denne metode nulstiller udseendet og følelsen af ​​denne menu.

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

Denne metode indsætter menupunktet i menuen med specificeret handling ved det specificerede indeks.

  1. void insert (Komponentkomponent, int-indeks)

Denne metode indsætter menupunktet i menuen ved det specificerede indeks.

  1. void show (Komponentinvoker, int x, int y)

Denne metode viser menuen i komponentinvokeringen ved positionen x, y i koordinatområdet.

  1. void addPopupMenuListener (PopupMenuListener l)

Denne metode tilføjer en lytter til denne popup-menu ved hjælp af hvilken vi kan kontrollere, når popup-menuen er synlig, usynlig og annulleret.

Anbefalede artikler

Dette er en guide til JPopupMenu. Her diskuterer vi eksemplet og konstruktøren med Program og forklaring af JPopupMenu. Du kan også se på de følgende artikler for at lære mere -

  1. Java-kommentarer
  2. Firkantet rod i Java
  3. CardLayout i Java
  4. Udskriv array i Java
  5. JLabel i Java
  6. Firkantet rod i PHP

Kategori: