JPopupMenu

JPopupMenu je komponenta Swing, která se používá k zobrazení rozbalovací nabídky v aplikaci. Rozbalovací nabídka není nic jiného než malé okno, které se objeví a zobrazuje řadu možností při jakékoli události, jako je kliknutí na tlačítko.

Příklad

  • Nabídka Úpravy může obsahovat volby jako vyjmout, kopírovat a vložit.
  • Menu pro organizaci může obsahovat možnosti jako Domů, kontaktujte nás, o nás, informujte se atd.

JPopupMenu je třída, která se používá v aplikaci Swing. Zde je prohlášení:

public class JPopupMenu rozšiřuje JComponent implementuje Accessible, MenuElement

JComponent základní třída pro všechny komponenty Swing kromě kontejnerů nejvyšší úrovně.

Konstruktory

JPopupMenu ()

Tento konstruktor konstruuje JPopupMenu bez invokátoru.

JPopupMenu (String label)

Tento konstruktor konstruuje JPopupMenu s názvem.

Pojďme pochopit JPopupMenu pomocí příkladu:

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

Vysvětlení

Toto je aplikace pro každou organizaci, která má základní stránky, jako je domov, dotaz, o nás a kontaktujte nás.

  • Nejprve jsme vytvořili JFrame o velikosti 400 x 400 pixelů. JFrame je okno nejvyšší úrovně s nadpisem a rámečkem.
  • Poté bylo přidáno tlačítko „Organizace“ pro zobrazení hlavní nabídky aplikace.
  • Je vytvořen štítek, který zobrazuje stav aplikace (na kterou položku nabídky se klikne)
  • Vyskakovací menu je vytvořeno pomocí třídy JPopupMenu a do něj byly přidány čtyři položky nabídky - Domů, dotazovat se o nás a kontaktovat nás.
  • Index položky nabídky je zobrazen a zobrazen pomocí funkce „getComponentIndex“.
  • Na konec nabídky byl přidán oddělovač pomocí funkce „addSeparator“.
  • Přidá se posluchač, který po kliknutí na tlačítko zobrazí okno nabídky.
  • Přidá se další posluchač, který změní stav, když se objeví nabídka, a také když klepnete na položky nabídky.
  • Když uživatel klikne na tlačítko „Organizace“, otevře se vyskakovací okno s položkami nabídky.
  • Když kliknete na položku nabídky, změní se „status“.

Výstup

  1. Toto je aplikace:

  1. Když uživatel klikne na „Organizace“, zobrazí se vyskakovací nabídka:

  1. Když uživatel klikl na „Domů“:

  1. Když uživatel klikl na „Poptávka“:

  1. Když uživatel klikl na „O nás“:

  1. Když uživatel klikl na „Kontaktujte nás“:

Metody JPopupMenu

Některé z užitečných metod JPopupMenu:

  1. JMenuItem add (Action a)

Tato metoda přidá položku nabídky na konec nabídky a je specifikována akce pro položku nabídky.

  1. JMenuItem add (JMenuItem menuItem)

Tato metoda také přidá položku nabídky na konec, kromě toho, že akce pro tuto položku nabídky musí být specifikována v JMenuItem.

  1. JMenuItemadd (String s)

Tato metoda vytvoří JMenuItem, přidá se do nabídky a vrátí JMenuItem, aby ji bylo možné dále konfigurovat.

  1. void addSeparator ()

Tato metoda přidá na konec nabídky oddělovací prostor.

  1. int getComponentIndex (komponenta c)

Tato metoda vrací index zadané komponenty v tomto JPopupMenu.

  1. statický boolean getDefaultLightWeightPopupEnabled ()

Tato metoda vrací hodnotu vlastnosti defaultLightWeightPopupEnabled, která je ve výchozím nastavení true.

  1. sada statických mezerDefaultLightWeightPopupEnabled (boolean aFlag)

Tato metoda nastavuje hodnotu vlastnosti defaultLightWeightPopupEnabled.

  1. String getLabel ()

Tato metoda vrací popisek této nabídky.

  1. void setLabel (String label)

Tato metoda nastaví štítek pro tuto nabídku.

  1. Vložky getMargin ()

Tato metoda vrací okraj v rámečku v pixelech mezi okrajem této nabídky a jejími kontejnery.

  1. boolean isLightWeightPopupEnabled ()

Tato metoda vrací vlastnost „lightWeightPopupEnabled“.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Tato metoda nastavuje vlastnost „lightWeightPopupEnabled“, což je ve výchozím nastavení pravda.

  1. boolean isVisible ()

Tato metoda vrací aktuální viditelnost této nabídky.

  1. void setVisible (boolean b)

Tato metoda nastavuje viditelnost nabídky.

  1. chráněné String paramString ()

Tato metoda vrací řetězcové zobrazení této nabídky.

  1. odstranit neplatné (int pos)

Tato metoda odebere komponentu z určeného indexu z této nabídky.

  1. void setLocation (int x, int y)

Tato metoda nastavuje umístění levého horního rohu této nabídky pomocí souřadnic x a y.

  1. void setPopupSize (int width, int int)

Tato metoda nastaví velikost tohoto okna nabídky na zadanou výšku a šířku.

  1. void setPopupSize (Dimension d)

Tato metoda nastaví velikost tohoto okna nabídky na zadanou dimenzi.

  1. PopupMenuUI getUI ()

Tato metoda vrací vzhled a dojem z této nabídky.

  1. void setUI (PopupMenuUI ui)

Tato metoda nastavuje vzhled a dojem z této nabídky.

  1. neplatné aktualizaceUI ()

Tato metoda resetuje vzhled a dojem z této nabídky.

  1. prázdná vložka (Akce a, index int)

Tato metoda vloží položku nabídky do nabídky se zadanou akcí v zadaném indexu.

  1. void insert (komponenta, int index)

Tato metoda vloží položku nabídky do nabídky v zadaném indexu.

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

Tato metoda zobrazuje nabídku v invokátoru komponent na pozici x, y v souřadnicovém prostoru.

  1. void addPopupMenuListener (PopupMenuListener l)

Tato metoda přidá posluchače do tohoto rozbalovacího menu, pomocí kterého můžeme zkontrolovat, zda je rozbalovací nabídka viditelná, neviditelná a zrušená.

Doporučené články

Toto je průvodce JPopupMenu. Zde diskutujeme příklad a konstruktor s programem a vysvětlením JPopupMenu. Další informace naleznete také v následujících článcích -

  1. Poznámky jazyka Java
  2. Square Root v Javě
  3. CardLayout v Javě
  4. Tisk pole v Javě
  5. JLabel v Javě
  6. Square Root v PHP

Kategorie: