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
- To jest aplikacja:
- Gdy użytkownik kliknie „Organizacja”, pojawi się menu podręczne:
- Gdy użytkownik kliknie „Dom”:
- Gdy użytkownik kliknie „Zapytaj”:
- Gdy użytkownik kliknie „O nas”:
- Gdy użytkownik kliknie „Skontaktuj się z nami”:
Metody JPopupMenu
Niektóre przydatne metody JPopupMenu:
- JMenuItem add (Działanie a)
Ta metoda dodaje pozycję menu na końcu menu i określa działanie dla pozycji menu.
- 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.
- JMenuItemadd (String)
Ta metoda tworzy JMenuItem, dodaje do menu i zwraca JMenuItem, aby można go było dalej konfigurować.
- void addSeparator ()
Ta metoda dodaje spację do separatora na końcu menu.
- int getComponentIndex (składnik c)
Ta metoda zwraca indeks określonego komponentu w tym JPopupMenu.
- static boolean getDefaultLightWeightPopupEnabled ()
Ta metoda zwraca wartość właściwości defaultLightWeightPopupEnabled, która domyślnie ma wartość true.
- static void setDefaultLightWeightPopupEnabled (boolean aFlag)
Ta metoda ustawia wartość właściwości defaultLightWeightPopupEnabled.
- Ciąg getLabel ()
Ta metoda zwraca etykietę tego menu.
- void setLabel (etykieta ciągów)
Ta metoda ustawia etykietę dla tego menu.
- Wypustki getMargin ()
Ta metoda zwraca margines (w pikselach) między ramką tego menu a jego kontenerami.
- boolean isLightWeightPopupEnabled ()
Ta metoda zwraca właściwość „lightWeightPopupEnabled”.
- void setLightWeightPopupEnabled (boolean aFlag)
Ta metoda ustawia właściwość „lightWeightPopupEnabled”, która domyślnie ma wartość true.
- boolean isVisible ()
Ta metoda zwraca bieżącą widoczność tego menu.
- void setVisible (boolean b)
Ta metoda ustawia widoczność menu.
- chroniony ciąg paramString ()
Ta metoda zwraca ciąg reprezentujący to menu.
- void remove (int pos)
Ta metoda usuwa składnik o podanym indeksie z tego menu.
- void setLocation (int x, int y)
Ta metoda ustawia położenie lewego górnego rogu tego menu za pomocą współrzędnych xiy.
- void setPopupSize (int width, int height)
Ta metoda ustawia rozmiar tego okna menu na określoną wysokość i szerokość.
- void setPopupSize (wymiar d)
Ta metoda ustawia rozmiar tego okna menu na określony wymiar.
- PopupMenuUI getUI ()
Ta metoda zwraca wygląd i działanie tego menu.
- void setUI (PopupMenuUI ui)
Ta metoda określa wygląd i działanie tego menu.
- void updateUI ()
Ta metoda resetuje wygląd i działanie tego menu.
- void insert (Action a, int index)
Ta metoda wstawia pozycję menu do menu o określonej akcji pod określonym indeksem.
- pusta wstawka (komponent elementu, indeks wewnętrzny)
Ta metoda wstawia pozycję menu do menu pod określonym indeksem.
- 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.
- 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 -
- Adnotacje Java
- Pierwiastek kwadratowy w Javie
- CardLayout w Javie
- Drukuj tablicę w Javie
- JLabel w Javie
- Pierwiastek kwadratowy w PHP