JPopupMenu

JPopupMenu ist eine Swing-Komponente, mit der ein Popup-Menü in der Anwendung angezeigt wird. Das Popup-Menü ist nichts anderes als ein kleines Fenster, das sich öffnet und eine Reihe von Optionen für Ereignisse wie das Klicken auf eine Schaltfläche anzeigt.

Beispiel

  • Das Menü Bearbeiten kann Optionen wie Ausschneiden, Kopieren und Einfügen enthalten.
  • Das Menü für eine Organisation kann Optionen wie "Startseite", "Kontakt", "Über uns", "Anfragen" usw. enthalten.

JPopupMenu ist eine Klasse, die in einer Swing-Anwendung verwendet wird. Hier ist die Erklärung:

public class JPopupMenu erweitert JComponent implementiert Accessible, MenuElement

JComponent-Basisklasse für alle Swing-Komponenten mit Ausnahme von Containern der obersten Ebene.

Konstruktoren

JPopupMenu ()

Dieser Konstruktor erstellt ein JPopupMenu ohne einen Aufrufer.

JPopupMenu (String-Label)

Dieser Konstruktor erstellt ein JPopupMenu mit einem Titel.

Verstehen wir JPopupMenu anhand eines Beispiels:

Programm

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

Erläuterung

Dies ist eine Anwendung für jede Organisation, die grundlegende Seiten wie "Home" hat, sich über uns erkundigt und mit uns Kontakt aufnimmt.

  • Zunächst haben wir einen JFrame mit einer Größe von 400 x 400 Pixel erstellt. JFrame ist ein Fenster der obersten Ebene mit Titel und Rahmen.
  • Anschließend wurde eine Schaltfläche "Organisation" hinzugefügt, um das Hauptmenü der Anwendung anzuzeigen.
  • Es wird eine Beschriftung erstellt, die den Status der Anwendung anzeigt (auf welchen Menüpunkt geklickt wird).
  • Ein Popup-Menü wird mit der JPopupMenu-Klasse erstellt und um vier Menüpunkte erweitert: "Startseite", "Nachfragen", "Über uns" und "Kontakt".
  • Der Index des Menüpunkts wird mit der Funktion „getComponentIndex“ ermittelt und angezeigt.
  • Fügte ein Trennzeichen am Ende des Menüs mit der Funktion "addSeparator" hinzu.
  • Ein Listener wird hinzugefügt, um das Menüfenster beim Klicken auf die Schaltfläche anzuzeigen.
  • Ein weiterer Listener wird hinzugefügt, um den Status zu ändern, wenn ein Menü angezeigt wird und wenn auf Menüelemente geklickt wird.
  • Wenn der Benutzer auf die Schaltfläche "Organisation" klickt, wird ein Popup-Fenster mit Menüelementen geöffnet.
  • Wenn ein Menüpunkt angeklickt wird, ändert sich der Status.

Ausgabe

  1. Dies ist die Anwendung:

  1. Wenn der Benutzer auf "Organisation" geklickt hat, wird ein Popup-Menü angezeigt:

  1. Wenn der Benutzer auf "Home" geklickt hat:

  1. Wenn der Benutzer auf "Anfragen" geklickt hat:

  1. Wenn der Benutzer auf "Über uns" geklickt hat:

  1. Wenn der Benutzer auf "Kontakt" geklickt hat:

Methoden von JPopupMenu

Einige der nützlichen JPopupMenu-Methoden:

  1. JMenuItem hinzufügen (Aktion a)

Diese Methode fügt am Ende des Menüs einen Menüeintrag hinzu, und die Aktion für den Menüeintrag wird angegeben.

  1. JMenuItem hinzufügen (JMenuItem menuItem)

Diese Methode fügt am Ende auch einen Menüeintrag hinzu, mit der Ausnahme, dass die Aktion für diesen Menüeintrag in JMenuItem angegeben werden muss.

  1. JMenuItemadd (String s)

Diese Methode erstellt ein JMenuItem, fügt es dem Menü hinzu und gibt das JMenuItem zurück, damit es weiter konfiguriert werden kann.

  1. void addSeparator ()

Diese Methode fügt am Ende des Menüs ein Trennzeichen ein.

  1. int getComponentIndex (Komponente c)

Diese Methode gibt den Index der angegebenen Komponente in diesem JPopupMenu zurück.

  1. statischer Boolescher Wert getDefaultLightWeightPopupEnabled ()

Diese Methode gibt den Wert der Eigenschaft defaultLightWeightPopupEnabled zurück, der standardmäßig true ist.

  1. statisch void setDefaultLightWeightPopupEnabled (boolean aFlag)

Diese Methode legt den Wert der Eigenschaft defaultLightWeightPopupEnabled fest.

  1. String getLabel ()

Diese Methode gibt die Bezeichnung dieses Menüs zurück.

  1. void setLabel (String label)

Diese Methode legt die Bezeichnung für dieses Menü fest.

  1. Insets getMargin ()

Diese Methode gibt den Rand in Pixel zwischen dem Rand dieses Menüs und seinen Containern zurück.

  1. boolean isLightWeightPopupEnabled ()

Diese Methode gibt die Eigenschaft "lightWeightPopupEnabled" zurück.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Diese Methode setzt die Eigenschaft "lightWeightPopupEnabled", die standardmäßig true ist.

  1. boolean isVisible ()

Diese Methode gibt die aktuelle Sichtbarkeit dieses Menüs zurück.

  1. void setVisible (boolean b)

Diese Methode legt die Sichtbarkeit des Menüs fest.

  1. protected String paramString ()

Diese Methode gibt eine Zeichenfolgendarstellung dieses Menüs zurück.

  1. nichtig entfernen (int pos)

Diese Methode entfernt die Komponente am angegebenen Index aus diesem Menü.

  1. void setLocation (int x, int y)

Diese Methode legt die Position der oberen linken Ecke dieses Menüs mithilfe der x- und y-Koordinaten fest.

  1. void setPopupSize (int width, int height)

Diese Methode stellt die Größe dieses Menüfensters auf die angegebene Höhe und Breite ein.

  1. void setPopupSize (Dimension d)

Diese Methode legt die Größe dieses Menüfensters auf die angegebene Dimension fest.

  1. PopupMenuUI getUI ()

Diese Methode gibt das Erscheinungsbild dieses Menüs zurück.

  1. void setUI (PopupMenuUI ui)

Diese Methode legt das Erscheinungsbild dieses Menüs fest.

  1. void updateUI ()

Diese Methode setzt das Erscheinungsbild dieses Menüs zurück.

  1. void insert (Aktion a, int index)

Diese Methode fügt den Menüeintrag im Menü mit der angegebenen Aktion am angegebenen Index ein.

  1. void insert (Komponentenkomponente, int index)

Diese Methode fügt den Menüpunkt im Menü am angegebenen Index ein.

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

Diese Methode zeigt das Menü im Komponenten-Aufrufer an der Position x, y im Koordinatenraum.

  1. void addPopupMenuListener (PopupMenuListener l)

Diese Methode fügt diesem Popup-Menü einen Listener hinzu, mit dessen Hilfe überprüft werden kann, ob das Popup-Menü sichtbar, unsichtbar und abgebrochen ist.

Empfohlene Artikel

Dies ist eine Anleitung zu JPopupMenu. Hier diskutieren wir das Beispiel und den Konstruktor mit dem Programm und der Erläuterung von JPopupMenu. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Java-Anmerkungen
  2. Quadratwurzel in Java
  3. CardLayout in Java
  4. Array in Java drucken
  5. JLabel in Java
  6. Quadratwurzel in PHP