JPopupMenu

JPopupMenu è un componente Swing utilizzato per mostrare un menu popup nell'applicazione. Il menu a comparsa non è altro che una piccola finestra che si apre e mostra una serie di scelte su qualsiasi evento come il clic sul pulsante.

Esempio

  • Il menu Modifica può contenere opzioni come taglia, copia e incolla.
  • Il menu di un'organizzazione può contenere opzioni come Home, contattaci, chi siamo, informarsi, ecc.

JPopupMenu è una classe utilizzata in un'applicazione Swing. Ecco la dichiarazione:

classe pubblica JPopupMenu estende gli strumenti JComponent Accessible, MenuElement

Classe di base JComponent per tutti i componenti Swing tranne i contenitori di livello superiore.

Costruttori

JPopupMenu ()

Questo costruttore costruisce un JPopupMenu senza un invocatore.

JPopupMenu (etichetta String)

Questo costruttore costruisce un JPopupMenu con un titolo.

Comprendiamo JPopupMenu con l'aiuto di un esempio:

Programma

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

Spiegazione

Questa è un'applicazione per qualsiasi organizzazione che abbia pagine di base come casa, informarsi, chi siamo e contattarci.

  • Innanzitutto, abbiamo creato un JFrame di dimensioni 400 per 400 pixel. JFrame è una finestra di livello superiore con titolo e bordo.
  • Quindi aggiunto un pulsante "Organizzazione" per mostrare il menu principale dell'applicazione.
  • Viene creata un'etichetta per mostrare lo stato dell'applicazione (su quale voce di menu si fa clic)
  • Un menu a comparsa viene creato utilizzando la classe JPopupMenu e ha aggiunto quattro voci di menu: Home, informarsi, chi siamo e contattarci.
  • L'indice della voce di menu viene individuato e visualizzato utilizzando la funzione “getComponentIndex”.
  • Aggiunto un separatore alla fine del menu usando la funzione "addSeparator".
  • Un listener viene aggiunto per mostrare la finestra del menu facendo clic sul pulsante.
  • Un altro ascoltatore viene aggiunto per modificare lo stato quando viene visualizzato un menu e anche quando si fa clic sulle voci di menu.
  • Quando l'utente fa clic sul pulsante "Organizzazione", viene aperta una finestra popup con voci di menu.
  • Quando si fa clic su una voce di menu, lo "stato" viene modificato.

Produzione

  1. Questa è l'applicazione:

  1. Quando l'utente ha fatto clic su "Organizzazione", viene visualizzato un menu popup:

  1. Quando l'utente ha fatto clic su "Home":

  1. Quando l'utente ha fatto clic su "Richiedi":

  1. Quando l'utente ha fatto clic su "Chi siamo":

  1. Quando l'utente ha fatto clic su "Contattaci":

Metodi di JPopupMenu

Alcuni dei metodi utili di JPopupMenu:

  1. JMenuItem add (Azione a)

Questo metodo aggiunge una voce di menu alla fine del menu e viene specificata l'azione per la voce di menu.

  1. Aggiungi JMenuItem (JMenuItem menuItem)

Questo metodo aggiunge anche una voce di menu alla fine tranne che l'azione per questa voce di menu deve essere specificata in JMenuItem.

  1. JMenuItemadd (String s)

Questo metodo crea un oggetto JMenuItem, lo aggiunge al menu e restituisce JMenuItem in modo che possa essere ulteriormente configurato.

  1. void addSeparator ()

Questo metodo aggiunge uno spazio separatore alla fine del menu.

  1. int getComponentIndex (Componente c)

Questo metodo restituisce l'indice del componente specificato all'interno di questo JPopupMenu.

  1. getDefaultLightWeightPopupEnabled () booleano statico

Questo metodo restituisce il valore della proprietà defaultLightWeightPopupEnabled, che per impostazione predefinita è vera.

  1. void statico setDefaultLightWeightPopupEnabled (boolean aFlag)

Questo metodo imposta il valore della proprietà defaultLightWeightPopupEnabled.

  1. String getLabel ()

Questo metodo restituisce l'etichetta di questo menu.

  1. void setLabel (etichetta String)

Questo metodo imposta l'etichetta per questo menu.

  1. Insets getMargin ()

Questo metodo restituisce il margine, in pixel, tra il bordo di questo menu e i suoi contenitori.

  1. booleano isLightWeightPopupEnabled ()

Questo metodo restituisce la proprietà "lightWeightPopupEnabled".

  1. void setLightWeightPopupEnabled (boolean aFlag)

Questo metodo imposta la proprietà "lightWeightPopupEnabled", che per impostazione predefinita è vera.

  1. booleano isVisible ()

Questo metodo restituisce la visibilità corrente di questo menu.

  1. void setVisible (boolean b)

Questo metodo imposta la visibilità del menu.

  1. paramString stringa protetta ()

Questo metodo restituisce una rappresentazione in forma di stringa di questo menu.

  1. void remove (int pos)

Questo metodo rimuove il componente dall'indice specificato da questo menu.

  1. void setLocation (int x, int y)

Questo metodo imposta la posizione dell'angolo in alto a sinistra di questo menu usando le coordinate x e y.

  1. void setPopupSize (int larghezza, int altezza)

Questo metodo imposta le dimensioni di questa finestra del menu sull'altezza e sulla larghezza specificate.

  1. void setPopupSize (Dimensione d)

Questo metodo imposta la dimensione di questa finestra del menu sulla dimensione specificata.

  1. PopupMenuUI getUI ()

Questo metodo restituisce l'aspetto di questo menu.

  1. void setUI (PopupMenuUI ui)

Questo metodo imposta l'aspetto di questo menu.

  1. void updateUI ()

Questo metodo ripristina l'aspetto di questo menu.

  1. void insert (Azione a, indice int)

Questo metodo inserisce la voce di menu nel menu con l'azione specificata nell'indice specificato.

  1. void insert (Componente componente, indice int)

Questo metodo inserisce la voce di menu nel menu nell'indice specificato.

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

Questo metodo mostra il menu nell'invocatore componente nella posizione x, y nello spazio delle coordinate.

  1. void addPopupMenuListener (PopupMenuListener l)

Questo metodo aggiunge un ascoltatore a questo menu popup con l'aiuto del quale, possiamo verificare quando il menu popup è visibile, invisibile e cancellato.

Articoli consigliati

Questa è una guida a JPopupMenu. Qui discutiamo l'esempio e il costruttore con il programma e la spiegazione di JPopupMenu. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Annotazioni Java
  2. Radice quadrata in Java
  3. CardLayout in Java
  4. Stampa array in Java
  5. JLabel in Java
  6. Radice quadrata in PHP

Categoria: