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“.
  • Добавя се слушател, който да показва прозореца на менюто при натискане на бутона.
  • Добавя се още един слушател, който променя състоянието, когато се появи менюто, а също и при щракване върху елементи от менюто.
  • Когато потребителят натисне бутона „Организация“, се отваря изскачащ прозорец с елементи от менюто.
  • Когато щракнете върху елемент от менюто, "статусът" се променя.

продукция

  1. Това е приложението:

  1. Когато потребителят кликне върху „Организация“, се показва изскачащо меню:

  1. Когато потребителят кликне върху „Начало“:

  1. Когато потребителят кликне върху „Запитване“:

  1. Когато потребителят кликне върху „За нас“:

  1. Когато потребителят кликне върху „Свържете се с нас“:

Методи на JPopupMenu

Някои от полезните методи на JPopupMenu:

  1. JMenuItem добавяне (действие a)

Този метод добавя елемент от менюто в края на менюто и е зададено действие за елемента от менюто.

  1. Добавяне на JMenuItem (меню JMenuItemItem)

Този метод също добавя елемент от менюто в края, освен че действието за този елемент от менюто трябва да бъде посочено в JMenuItem.

  1. JMenuItemadd (струнни)

Този метод създава JMenuItem, добавя към менюто и връща JMenuItem, така че да може да бъде конфигуриран допълнително.

  1. void addSeparator ()

Този метод добавя разделително пространство в края на менюто.

  1. int getComponentIndex (Компонент c)

Този метод връща индекса на посочения компонент в тази JPopupMenu.

  1. статичен булев getDefaultLightWeightPopupEnabled ()

Този метод връща стойността на свойството defaultLightWeightPopupEnabled, което по подразбиране е вярно.

  1. static void setDefaultLightWeightPopupEnabled (boolean aFlag)

Този метод задава стойността на свойството defaultLightWeightPopupEnabled.

  1. String getLabel ()

Този метод връща етикета на това меню.

  1. void setLabel (String label)

Този метод задава етикета за това меню.

  1. Insets getMargin ()

Този метод връща полето, в пиксели, между границата на това меню и неговите контейнери.

  1. boolean isLightWeightPopupEnabled ()

Този метод връща свойството „lightWeightPopupEnabled“.

  1. void setLightWeightPopupEnabled (boolean aFlag)

Този метод задава свойството „lightWeightPopupEnabled“, което по подразбиране е вярно.

  1. boolean isVisible ()

Този метод връща текущата видимост на това меню.

  1. void setVisible (boolean b)

Този метод задава видимостта на менюто.

  1. защитен String paramString ()

Този метод връща стриктно представяне на това меню.

  1. невалидно премахване (int pos)

Този метод премахва компонента в посочения индекс от това меню.

  1. void setLocation (int x, int y)

Този метод задава местоположението на горния ляв ъгъл на това меню с помощта на x и y координати.

  1. void setPopupSize (int ширина, int височина)

Този метод задава размера на този прозорец на менюто на зададената височина и ширина.

  1. void setPopupSize (Dimension d)

Този метод задава размера на този прозорец на менюто в определената величина.

  1. PopupMenuUI getUI ()

Този метод връща облика на това меню.

  1. невалиден setUI (PopupMenuUI ui)

Този метод задава облика на това меню.

  1. невалидна актуализацияUI ()

Този метод нулира външния вид и усещането на това меню.

  1. невалидна вмъкване (Действие a, int индекс)

Този метод вмъква елемента от менюто с определено действие в указания индекс.

  1. void insert (компонент на компонента, int индекс)

Този метод вмъква елемент от менюто в менюто с посочения индекс.

  1. void show (Компонент за повикване, int x, int y)

Този метод показва менюто в компонента за повикване на позиция x, y в пространството за координати.

  1. void addPopupMenuListener (PopupMenuListener l)

Този метод добавя слушател към това изскачащо меню, с помощта на което можем да проверим кога изскачащото меню е видимо, невидимо и отменено.

Препоръчителни статии

Това е ръководство за JPopupMenu. Тук обсъждаме Примера и конструктора с програма и обяснение на JPopupMenu. Може да разгледате и следните статии, за да научите повече -

  1. Анотации на Java
  2. Квадратни корени в Java
  3. CardLayout в Java
  4. Печат на масив в Java
  5. JLabel на Java
  6. Квадратни корени в PHP