JPopupMenu

JPopupMenu - компонент Swing, який використовується для показу спливаючого меню в додатку. Меню спливаючих вікон - це не що інше, як невелике вікно, яке з'являється і показує ряд варіантів будь-якої події, наприклад, натискання кнопки.

Приклад

  • Меню редагування може містити такі параметри, як вирізати, скопіювати та вставити.
  • Меню для організації може містити такі параметри, як "Домашня сторінка", зв'яжіться з нами, про нас, запитуйте тощо.

JPopupMenu - клас, який використовується в додатку Swing. Ось декларація:

JPopupMenu публічного класу розширює JComponent реалізує Accessible, MenuElement

Базовий клас JComponent для всіх компонентів Swing, крім контейнерів верхнього рівня.

Конструктори

JPopupMenu ()

Цей конструктор конструює JPopupMenu без виклику.

JPopupMenu (мітка рядка)

Цей конструктор будує 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 add (Дія a)

Цей метод додає пункт меню в кінці меню, і дія для пункту меню вказана.

  1. JMenuItem додати (JMenuItem menuItem)

Цей метод також додає пункт меню в кінці, за винятком того, що дії для цього пункту меню повинні бути вказані в JMenuItem.

  1. JMenuItemadd (рядки)

Цей метод створює JMenuItem, додає в меню і повертає JMenuItem, щоб він міг бути налаштований далі.

  1. недійсний addSeparator ()

Цей метод додає простір роздільника в кінці меню.

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

Цей метод повертає індекс зазначеного компонента в межах цього JPopupMenu.

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

Цей метод повертає значення властивості defaultLightWeightPopupEnabled, яке за замовчуванням є істинним.

  1. static void setDefaultLightWeightPopupEnabled (булева aFlag)

Цей метод встановлює значення властивості defaultLightWeightPopupEnabled.

  1. Рядок getLabel ()

Цей метод повертає мітку цього меню.

  1. void setLabel (мітка рядка)

Цей метод встановлює мітку для цього меню.

  1. Вставки getMargin ()

Цей метод повертає поле в пікселях між рамкою цього меню та його контейнерами.

  1. boolean isLightWeightPopupEnabled ()

Цей метод повертає властивість “lightWeightPopupEnabled”.

  1. пустота setLightWeightPopupEnabled (булева aFlag)

Цей метод встановлює властивість “lightWeightPopupEnabled”, яка за замовчуванням є істинною.

  1. булева є Visis ()

Цей метод повертає поточну видимість цього меню.

  1. пустота setVisible (булева b)

Цей метод встановлює видимість меню.

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

Цей метод повертає рядкове подання цього меню.

  1. недійсне видалення (int pos)

Цей метод видаляє компонент із зазначеного індексу з цього меню.

  1. пустота setLocation (int x, int y)

Цей метод встановлює розташування верхнього лівого кута цього меню за допомогою координат x та y.

  1. пустота setPopupSize (int ширина, int висота)

Цей метод встановлює розмір цього вікна меню на задану висоту та ширину.

  1. пустота setPopupSize (розмір d)

Цей метод встановлює розмір цього вікна меню на вказаний розмір.

  1. PopupMenuUI getUI ()

Цей метод повертає зовнішній вигляд цього меню.

  1. недійсний набірUI (PopupMenuUI ui)

Цей метод задає зовнішній вигляд цього меню.

  1. недійсне оновленняUI ()

Цей метод скидає зовнішній вигляд цього меню.

  1. недійсна вставка (Action a, int index)

Цей метод вставляє в меню пункт меню із заданою дією за вказаним індексом.

  1. пустота вставки (компонент компонента, інт індекс)

Цей метод вставляє пункт меню в меню за вказаним індексом.

  1. недійсне шоу (компонент, що викликає, int x, int y)

Цей метод показує меню у виклику компонентів у положенні x, y у просторі координат.

  1. недійсний addPopupMenuListener (PopupMenuListener l)

Цей метод додає слухача до цього спливаючого меню, за допомогою якого ми можемо перевірити, коли спливаюче меню видиме, невидиме та скасоване.

Рекомендовані статті

Це посібник по JPopupMenu. Тут ми обговорюємо приклад та конструктор з програмою та поясненнями JPopupMenu. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Анотації на Java
  2. Квадратний корінь у Java
  3. Картонна карта у Java
  4. Друкувати масив на Java
  5. JLabel на Java
  6. Квадратний корінь в PHP