JPopupMenu

JPopupMenu to komponent Swing służący do wyświetlania menu podręcznego w aplikacji. Wyskakujące menu to tylko małe okno, które się wyskakuje i pokazuje szereg opcji dla każdego zdarzenia, takiego jak kliknięcie przycisku.

Przykład

  • Menu edycji może zawierać opcje takie jak wycinanie, kopiowanie i wklejanie.
  • Menu dla organizacji może zawierać opcje takie jak Strona główna, skontaktuj się z nami, o nas, zapytaj itp.

JPopupMenu to klasa używana w aplikacji Swing. Oto deklaracja:

JPopupMenu klasy publicznej rozszerza JComponent implementuje Accessible, MenuElement

Klasa podstawowa JComponent dla wszystkich komponentów Swing z wyjątkiem kontenerów najwyższego poziomu.

Konstruktory

JPopupMenu ()

Ten konstruktor konstruuje JPopupMenu bez wywołującego.

JPopupMenu (etykieta ciąg)

Ten konstruktor konstruuje JPopupMenu z tytułem.

Rozumiemy JPopupMenu na podstawie przykładu:

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

Wyjaśnienie

Jest to aplikacja dla każdej organizacji posiadającej podstawowe strony, takie jak strona główna, zapytania, o nas i kontaktu z nami.

  • Najpierw stworzyliśmy JFrame o rozmiarze 400 na 400 pikseli. JFrame to okno najwyższego poziomu z tytułem i ramką.
  • Następnie dodano przycisk „Organizacja”, aby wyświetlić menu główne aplikacji.
  • Tworzona jest etykieta pokazująca stan aplikacji (który element menu zostanie kliknięty)
  • Wyskakujące menu jest tworzone za pomocą klasy JPopupMenu i dodaje do niego cztery elementy menu - Strona główna, zapytaj o nas i skontaktuj się z nami.
  • Indeks pozycji menu jest opracowany i pokazany za pomocą funkcji „getComponentIndex”.
  • Dodano separator na końcu menu za pomocą funkcji „addSeparator”.
  • Dodano nasłuchiwanie, aby wyświetlić okno menu po kliknięciu przycisku.
  • Dodano jeszcze jednego detektora, aby zmienić status, gdy pojawi się menu, a także po kliknięciu elementów menu.
  • Gdy użytkownik kliknie przycisk „Organizacja”, zostanie otwarte okno podręczne z elementami menu.
  • Po kliknięciu elementu menu „status” ulega zmianie.

Wynik

  1. To jest aplikacja:

  1. Gdy użytkownik kliknie „Organizacja”, pojawi się menu podręczne:

  1. Gdy użytkownik kliknie „Dom”:

  1. Gdy użytkownik kliknie „Zapytaj”:

  1. Gdy użytkownik kliknie „O nas”:

  1. Gdy użytkownik kliknie „Skontaktuj się z nami”:

Metody JPopupMenu

Niektóre przydatne metody JPopupMenu:

  1. JMenuItem add (Działanie a)

Ta metoda dodaje pozycję menu na końcu menu i określa działanie dla pozycji menu.

  1. JMenuItem add (JMenuItem menuItem)

Ta metoda dodaje również pozycję menu na końcu, z wyjątkiem tego, że akcja dla tego elementu menu musi być określona w JMenuItem.

  1. JMenuItemadd (String)

Ta metoda tworzy JMenuItem, dodaje do menu i zwraca JMenuItem, aby można go było dalej konfigurować.

  1. void addSeparator ()

Ta metoda dodaje spację do separatora na końcu menu.

  1. int getComponentIndex (składnik c)

Ta metoda zwraca indeks określonego komponentu w tym JPopupMenu.

  1. static boolean getDefaultLightWeightPopupEnabled ()

Ta metoda zwraca wartość właściwości defaultLightWeightPopupEnabled, która domyślnie ma wartość true.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Ta metoda ustawia wartość właściwości defaultLightWeightPopupEnabled.

  1. Ciąg getLabel ()

Ta metoda zwraca etykietę tego menu.

  1. void setLabel (etykieta ciągów)

Ta metoda ustawia etykietę dla tego menu.

  1. Wypustki getMargin ()

Ta metoda zwraca margines (w pikselach) między ramką tego menu a jego kontenerami.

  1. boolean isLightWeightPopupEnabled ()

Ta metoda zwraca właściwość „lightWeightPopupEnabled”.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Ta metoda ustawia właściwość „lightWeightPopupEnabled”, która domyślnie ma wartość true.

  1. boolean isVisible ()

Ta metoda zwraca bieżącą widoczność tego menu.

  1. void setVisible (boolean b)

Ta metoda ustawia widoczność menu.

  1. chroniony ciąg paramString ()

Ta metoda zwraca ciąg reprezentujący to menu.

  1. void remove (int pos)

Ta metoda usuwa składnik o podanym indeksie z tego menu.

  1. void setLocation (int x, int y)

Ta metoda ustawia położenie lewego górnego rogu tego menu za pomocą współrzędnych xiy.

  1. void setPopupSize (int width, int height)

Ta metoda ustawia rozmiar tego okna menu na określoną wysokość i szerokość.

  1. void setPopupSize (wymiar d)

Ta metoda ustawia rozmiar tego okna menu na określony wymiar.

  1. PopupMenuUI getUI ()

Ta metoda zwraca wygląd i działanie tego menu.

  1. void setUI (PopupMenuUI ui)

Ta metoda określa wygląd i działanie tego menu.

  1. void updateUI ()

Ta metoda resetuje wygląd i działanie tego menu.

  1. void insert (Action a, int index)

Ta metoda wstawia pozycję menu do menu o określonej akcji pod określonym indeksem.

  1. pusta wstawka (komponent elementu, indeks wewnętrzny)

Ta metoda wstawia pozycję menu do menu pod określonym indeksem.

  1. void show (wywoływacz komponentów, int x, int y)

Ta metoda pokazuje menu w wywołaniu komponentu w pozycji x, y w przestrzeni współrzędnych.

  1. void addPopupMenuListener (PopupMenuListener l)

Ta metoda dodaje nasłuchiwanie do tego menu podręcznego, za pomocą którego możemy sprawdzić, kiedy menu podręczne jest widoczne, niewidoczne i anulowane.

Polecane artykuły

To jest przewodnik po JPopupMenu. Tutaj omawiamy Przykład i konstruktor z programem i objaśnieniem JPopupMenu. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Adnotacje Java
  2. Pierwiastek kwadratowy w Javie
  3. CardLayout w Javie
  4. Drukuj tablicę w Javie
  5. JLabel w Javie
  6. Pierwiastek kwadratowy w PHP