JPopupMenu

JPopupMenu este o componentă Swing folosită pentru afișarea unui meniu pop-up în aplicație. Meniul pop-up nu este altceva decât o fereastră mică care apare și afișează o serie de opțiuni la orice eveniment, cum ar fi clic pe buton.

Exemplu

  • Meniul Edit poate conține opțiuni precum tăiere, copiere și lipire.
  • Meniul pentru o organizație poate conține opțiuni precum Acasă, ne poate contacta, despre noi, întreba etc.

JPopupMenu este o clasă folosită într-o aplicație Swing. Iată declarația:

clasa publică JPopupMenu extinde JComponent implementează Accesibil, MenuElement

Clasa de bază JComponent pentru toate componentele Swing, cu excepția containerelor de nivel superior.

constructorilor

JPopupMenu ()

Acest constructor construiește un JPopupMenu fără un invocator.

JPopupMenu (etichetă șir)

Acest constructor construiește un JPopupMenu cu un titlu.

Să înțelegem JPopupMenu cu ajutorul unui exemplu:

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

Explicaţie

Aceasta este o aplicație pentru orice organizație care are pagini de bază cum ar fi acasă, întreabă, despre noi și ne poate contacta.

  • Mai întâi, am creat un JFrame cu dimensiunea de 400 pe 400 de pixeli. JFrame este o fereastră de nivel superior cu titlu și chenar.
  • Apoi a adăugat un buton „Organizare” pentru a afișa meniul principal al aplicației.
  • O etichetă este creată pentru a afișa starea aplicației (pe ce element de meniu se face clic)
  • Un meniu pop-up este creat folosind clasa JPopupMenu și i-au adăugat patru elemente de meniu - Acasă, informați-vă, despre noi și contactați-ne.
  • Indicele elementului de meniu este calculat și afișat folosind funcția „getComponentIndex”.
  • S-a adăugat un separator la sfârșitul meniului folosind funcția „addSeparator”.
  • Un ascultător este adăugat pentru a afișa fereastra de meniu pe clicul butonului.
  • Încă un ascultător este adăugat pentru a schimba starea atunci când apare un meniu și, de asemenea, când sunt făcute clic pe elementele de meniu.
  • Când utilizatorul face clic pe butonul „Organizare”, se deschide o fereastră pop-up cu elemente de meniu.
  • Când faceți clic pe un element de meniu, „status” este modificat.

producție

  1. Aceasta este aplicația:

  1. Când utilizatorul a făcut clic pe „Organizare”, este afișat un meniu pop-up:

  1. Când utilizatorul a făcut clic pe „Acasă”:

  1. Când utilizatorul a făcut clic pe „Întrebați”:

  1. Când utilizatorul a făcut clic pe „Despre noi”:

  1. Când utilizatorul a făcut clic pe „Contactați-ne”:

Metode de JPopupMenu

Câteva dintre metodele utile JPopupMenu:

  1. Adăugare JMenuItem (acțiunea a)

Această metodă adaugă un element de meniu la sfârșitul meniului și este specificată acțiunea pentru elementul de meniu.

  1. Adăugare JMenuItem (meniul JMenuItem meniu Item)

Această metodă adaugă, de asemenea, un element de meniu la sfârșit, cu excepția faptului că acțiunea pentru acest element de meniu trebuie specificată în JMenuItem.

  1. JMenuItemadd (șiruri)

Această metodă creează un JMenuItem, se adaugă la meniu și returnează JMenuItem, astfel încât să poată fi configurat în continuare.

  1. void addSeparator ()

Această metodă adaugă un spațiu separator la sfârșitul meniului.

  1. int getComponentIndex (Componenta c)

Această metodă returnează indexul componentei specificate în acest JPopupMenu.

  1. static boolean getDefaultLightWeightPopupEnabled ()

Această metodă returnează valoarea proprietății defaultLightWeightPopupEnabled, care implicit este adevărată.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Această metodă stabilește valoarea proprietății defaultLightWeightPopupEnabled.

  1. String getLabel ()

Această metodă returnează eticheta acestui meniu.

  1. void setLabel (etichetă șir)

Această metodă stabilește eticheta pentru acest meniu.

  1. Insets getMargin ()

Această metodă returnează marja, în pixeli, între marginea acestui meniu și containerele sale.

  1. boolean isLightWeightPopupEnabled ()

Această metodă returnează proprietatea „lightWeightPopupEnabled”.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Această metodă stabilește proprietatea „lightWeightPopupEnabled”, care implicit este adevărată.

  1. boolean este vizibil ()

Această metodă returnează vizibilitatea curentă a acestui meniu.

  1. void setVizibil (boolean b)

Această metodă stabilește vizibilitatea meniului.

  1. protected String paramString ()

Această metodă returnează o reprezentare șir a acestui meniu.

  1. void remove (int poz)

Această metodă elimină din acest meniu componenta din indexul specificat.

  1. void setLocalizare (int x, int y)

Această metodă stabilește locația colțului din stânga sus al acestui meniu folosind coordonatele x și y.

  1. void setPopupSize (lățime int, înălțime int)

Această metodă stabilește dimensiunea acestei ferestre de meniu la înălțimea și lățimea specificate.

  1. void setPopupSize (dimensiunea d)

Această metodă stabilește dimensiunea acestei ferestre de meniu la dimensiunea specificată.

  1. PopupMenuUI getUI ()

Această metodă returnează aspectul acestui meniu.

  1. void setUI (PopupMenuUI ui)

Această metodă stabilește aspectul acestui meniu.

  1. void updateUI ()

Această metodă resetează aspectul acestui meniu.

  1. void insert (Acțiunea a, indexul int)

Această metodă introduce elementul de meniu în meniu cu acțiune specificată la indexul specificat.

  1. void insert (componentă componentă, index index)

Această metodă introduce elementul de meniu din meniu la indexul specificat.

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

Această metodă arată meniul din invocatorul componente la poziția x, y în spațiul de coordonate.

  1. void addPopupMenuListener (PopupMenuListener l)

Această metodă adaugă un ascultător la acest meniu pop, cu ajutorul căruia putem verifica dacă meniul pop-up este vizibil, invizibil și anulat.

Articole recomandate

Acesta este un ghid pentru JPopupMenu. Aici discutăm exemplul și constructorul cu programul și explicația JPopupMenu. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Adnotări Java
  2. Rădăcina pătrată în Java
  3. CardLayout în Java
  4. Print Array în Java
  5. JLabel în Java
  6. Rădăcina pătrată în PHP