JPopupMenu

JPopupMenu je komponent Swing, ktorý sa používa na zobrazenie kontextového menu v aplikácii. Kontextová ponuka nie je ničím iným ako malým oknom, ktoré sa objaví a zobrazuje rad možností pri každej udalosti, napríklad po kliknutí na tlačidlo.

príklad

  • Ponuka úprav môže obsahovať možnosti, ako sú vystrihnutie, kopírovanie a prilepenie.
  • Menu pre organizáciu môže obsahovať možnosti ako Domov, kontaktujte nás, o nás, opýtajte sa atď.

JPopupMenu je trieda, ktorá sa používa v aplikácii Swing. Tu je vyhlásenie:

public class JPopupMenu rozširuje JComponent implementuje Accessible, MenuElement

JKomponentná trieda komponentov pre všetky komponenty Swing okrem kontajnerov najvyššej úrovne.

konštruktéri

JPopupMenu ()

Tento konštruktor zostavuje JPopupMenu bez vyvolávača.

JPopupMenu (String label)

Tento konštruktor skonštruuje JPopupMenu s názvom.

Pochopme JPopupMenu pomocou prí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());
)
));
)
)

vysvetlenie

Toto je aplikácia pre akúkoľvek organizáciu, ktorá má základné stránky ako domov, pýtajte sa na nás a kontaktujte nás.

  • Najprv sme vytvorili súbor JFrame s veľkosťou 400 x 400 pixlov. JFrame je okno najvyššej úrovne s nadpisom a orámovaním.
  • Potom pridajte tlačidlo „Organizácia“, aby sa zobrazilo hlavné menu aplikácie.
  • Vytvorí sa menovka, ktorá zobrazuje stav aplikácie (na ktorú položku ponuky sa klikne).
  • Kontextové menu sa vytvorí pomocou triedy JPopupMenu a do neho sa pridajú štyri položky ponuky - Domov, dopytovať sa o nás a kontaktovať nás.
  • Index položky ponuky je zobrazený a zobrazený pomocou funkcie „getComponentIndex“.
  • Na koniec ponuky bol pridaný oddeľovač pomocou funkcie „addSeparator“.
  • Pridá sa poslucháč, ktorý po kliknutí na tlačidlo zobrazí okno ponuky.
  • Pridá sa ďalší poslucháč, ktorý zmení stav, keď sa objaví ponuka, a tiež, keď kliknete na položky ponuky.
  • Keď používateľ klikne na tlačidlo „Organizácia“, otvorí sa kontextové okno s položkami ponuky.
  • Po kliknutí na položku ponuky sa zmení stav „status“.

Výkon

  1. Toto je aplikácia:

  1. Keď používateľ klikne na „Organizácia“, zobrazí sa kontextové menu:

  1. Keď používateľ klikol na „Domov“:

  1. Keď používateľ klikol na „Dopytovať“:

  1. Keď používateľ klikol na „O nás“:

  1. Keď používateľ klikol na „Kontaktujte nás“:

Metódy JPopupMenu

Niektoré z užitočných metód JPopupMenu:

  1. JMenuItem add (Action a)

Táto metóda pridá položku ponuky na koniec ponuky a je špecifikovaná akcia pre položku ponuky.

  1. JMenuItem add (JMenuItem menuItem)

Táto metóda tiež pridá položku ponuky na koniec okrem toho, že akcia pre túto položku ponuky musí byť špecifikovaná v JMenuItem.

  1. JMenuItemadd (String)

Táto metóda vytvorí JMenuItem, pridá sa do ponuky a vráti JMenuItem, aby sa dala ďalej konfigurovať.

  1. neplatné addSeparator ()

Táto metóda pridá na koniec ponuky oddeľovací priestor.

  1. int getComponentIndex (komponent c)

Táto metóda vráti index určeného komponentu v tomto JPopupMenu.

  1. statický boolean getDefaultLightWeightPopupEnabled ()

Táto metóda vracia hodnotu vlastnosti defaultLightWeightPopupEnabled, ktorá je v predvolenom nastavení true.

  1. sada statických medzierDefaultLightWeightPopupEnabled (boolean aFlag)

Táto metóda nastavuje hodnotu vlastnosti defaultLightWeightPopupEnabled.

  1. String getLabel ()

Táto metóda vracia návestie tejto ponuky.

  1. void setLabel (String label)

Táto metóda nastaví štítok pre túto ponuku.

  1. Vložky getMargin ()

Táto metóda vracia v rámčeku okraj medzi touto ponukou a jej kontajnermi.

  1. boolean isLightWeightPopupEnabled ()

Táto metóda vracia vlastnosť „lightWeightPopupEnabled“.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Táto metóda nastavuje vlastnosť „lightWeightPopupEnabled“, čo je predvolene pravda.

  1. boolean isVisible ()

Táto metóda vracia aktuálnu viditeľnosť tejto ponuky.

  1. void setVisible (boolean b)

Táto metóda nastavuje viditeľnosť ponuky.

  1. chránený reťazec paramString ()

Táto metóda vracia reťazcovú reprezentáciu tejto ponuky.

  1. odstránenie neplatnosti (int pos)

Táto metóda odstráni komponent z určeného indexu z tejto ponuky.

  1. void setLocation (int x, int y)

Táto metóda nastavuje umiestnenie ľavého horného rohu tejto ponuky pomocou súradníc xay.

  1. void setPopupSize (int width, int height)

Táto metóda nastavuje veľkosť tohto okna ponuky na zadanú výšku a šírku.

  1. void setPopupSize (Dimension d)

Táto metóda nastavuje veľkosť tohto okna ponuky na zadanú dimenziu.

  1. PopupMenuUI getUI ()

Táto metóda vráti vzhľad a dojem z tejto ponuky.

  1. void setUI (PopupMenuUI ui)

Táto metóda nastavuje vzhľad a dojem z tejto ponuky.

  1. void updateUI ()

Táto metóda vynuluje vzhľad a dojem z tejto ponuky.

  1. vložiť neplatné (Akcia a, int index)

Táto metóda vloží položku ponuky do ponuky so zadanou akciou v zadanom indexe.

  1. void insert (Komponent, int index)

Táto metóda vloží položku ponuky do ponuky so zadaným indexom.

  1. neplatná show (Vyvolávač komponentov, int x, int y)

Táto metóda zobrazuje menu v komponente invoker na pozícii x, y v súradnicovom priestore.

  1. void addPopupMenuListener (PopupMenuListener l)

Táto metóda pridá poslucháča do tohto rozbaľovacieho menu, pomocou ktorého môžeme skontrolovať, či je rozbaľovacie menu viditeľné, neviditeľné a zrušené.

Odporúčané články

Toto je sprievodca JPopupMenu. Tu diskutujeme o príklade a konštruktore s programom a vysvetlením JPopupMenu. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Poznámky jazyka Java
  2. Square Root v Jave
  3. CardLayout v Jave
  4. Tlač Array v Jave
  5. JLabel v Jave
  6. Štvorcový koreň v PHP

Kategórie: