JPopupMenu
JPopupMenu е компонент Swing, използван за показване на изскачащо меню в приложението. Менюто с изскачащи прозорци не е нищо друго освен малък прозорец, който се появява и показва поредица от избори за всяко събитие като натискане на бутона.
пример
- Менюто за редактиране може да съдържа опции като изрязване, копиране и поставяне.
- Менюто за организация може да съдържа опции като Начало, свържете се с нас, за нас, запитвайте и т.н.
JPopupMenu е клас, който се използва в приложението Swing. Ето декларацията:
JPopupMenu от публичен клас разширява JComponent реализира Accessible, MenuElement
Основен клас JComponent за всички компоненти на Swing, с изключение на контейнери от най-високо ниво.
конструкторите
JPopupMenu ()
Този конструктор конструира JPopupMenu без фактор.
JPopupMenu (String label)
Този конструктор конструира JPopupMenu със заглавие.
Нека разберем JPopupMenu с помощта на пример:
програма
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());
)
));
)
)
обяснение
Това е приложение за всяка организация, която има основни страници като вкъщи, запитвайте се за нас и се свържете с нас.
- Първо създадохме JFrame с размер 400 на 400 пиксела. JFrame е прозорец от най-високо ниво със заглавие и рамка.
- След това добавете бутон „Организация“, за да покажете главното меню на приложението.
- Създава се етикет, който показва състоянието на приложението (кой елемент от менюто е щракнат)
- Създава се изскачащо меню с помощта на клас JPopupMenu и към него се добавят четири елемента от менюто - Начало, запитвайте се за нас и се свържете с нас.
- Индексът на елемента от менюто е фигуриран и показан с помощта на функция "getComponentIndex".
- Добавен е разделител в края на менюто, използвайки функция „addSeparator“.
- Добавя се слушател, който да показва прозореца на менюто при натискане на бутона.
- Добавя се още един слушател, който променя състоянието, когато се появи менюто, а също и при щракване върху елементи от менюто.
- Когато потребителят натисне бутона „Организация“, се отваря изскачащ прозорец с елементи от менюто.
- Когато щракнете върху елемент от менюто, "статусът" се променя.
продукция
- Това е приложението:
- Когато потребителят кликне върху „Организация“, се показва изскачащо меню:
- Когато потребителят кликне върху „Начало“:
- Когато потребителят кликне върху „Запитване“:
- Когато потребителят кликне върху „За нас“:
- Когато потребителят кликне върху „Свържете се с нас“:
Методи на JPopupMenu
Някои от полезните методи на JPopupMenu:
- JMenuItem добавяне (действие a)
Този метод добавя елемент от менюто в края на менюто и е зададено действие за елемента от менюто.
- Добавяне на JMenuItem (меню JMenuItemItem)
Този метод също добавя елемент от менюто в края, освен че действието за този елемент от менюто трябва да бъде посочено в JMenuItem.
- JMenuItemadd (струнни)
Този метод създава JMenuItem, добавя към менюто и връща JMenuItem, така че да може да бъде конфигуриран допълнително.
- void addSeparator ()
Този метод добавя разделително пространство в края на менюто.
- int getComponentIndex (Компонент c)
Този метод връща индекса на посочения компонент в тази JPopupMenu.
- статичен булев getDefaultLightWeightPopupEnabled ()
Този метод връща стойността на свойството defaultLightWeightPopupEnabled, което по подразбиране е вярно.
- static void setDefaultLightWeightPopupEnabled (boolean aFlag)
Този метод задава стойността на свойството defaultLightWeightPopupEnabled.
- String getLabel ()
Този метод връща етикета на това меню.
- void setLabel (String label)
Този метод задава етикета за това меню.
- Insets getMargin ()
Този метод връща полето, в пиксели, между границата на това меню и неговите контейнери.
- boolean isLightWeightPopupEnabled ()
Този метод връща свойството „lightWeightPopupEnabled“.
- void setLightWeightPopupEnabled (boolean aFlag)
Този метод задава свойството „lightWeightPopupEnabled“, което по подразбиране е вярно.
- boolean isVisible ()
Този метод връща текущата видимост на това меню.
- void setVisible (boolean b)
Този метод задава видимостта на менюто.
- защитен String paramString ()
Този метод връща стриктно представяне на това меню.
- невалидно премахване (int pos)
Този метод премахва компонента в посочения индекс от това меню.
- void setLocation (int x, int y)
Този метод задава местоположението на горния ляв ъгъл на това меню с помощта на x и y координати.
- void setPopupSize (int ширина, int височина)
Този метод задава размера на този прозорец на менюто на зададената височина и ширина.
- void setPopupSize (Dimension d)
Този метод задава размера на този прозорец на менюто в определената величина.
- PopupMenuUI getUI ()
Този метод връща облика на това меню.
- невалиден setUI (PopupMenuUI ui)
Този метод задава облика на това меню.
- невалидна актуализацияUI ()
Този метод нулира външния вид и усещането на това меню.
- невалидна вмъкване (Действие a, int индекс)
Този метод вмъква елемента от менюто с определено действие в указания индекс.
- void insert (компонент на компонента, int индекс)
Този метод вмъква елемент от менюто в менюто с посочения индекс.
- void show (Компонент за повикване, int x, int y)
Този метод показва менюто в компонента за повикване на позиция x, y в пространството за координати.
- void addPopupMenuListener (PopupMenuListener l)
Този метод добавя слушател към това изскачащо меню, с помощта на което можем да проверим кога изскачащото меню е видимо, невидимо и отменено.
Препоръчителни статии
Това е ръководство за JPopupMenu. Тук обсъждаме Примера и конструктора с програма и обяснение на JPopupMenu. Може да разгледате и следните статии, за да научите повече -
- Анотации на Java
- Квадратни корени в Java
- CardLayout в Java
- Печат на масив в Java
- JLabel на Java
- Квадратни корени в PHP