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 добавить (Действие а)

Этот метод добавляет пункт меню в конец меню и указывается действие для этого пункта меню.

  1. JMenuItem add (JMenuItem menuItem)

Этот метод также добавляет пункт меню в конце, за исключением того, что действие для этого пункта меню должно быть указано в JMenuItem.

  1. JMenuItemadd (String s)

Этот метод создает JMenuItem, добавляет в меню и возвращает JMenuItem для дальнейшей настройки.

  1. void addSeparator ()

Этот метод добавляет разделитель пробела в конце меню.

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

Этот метод возвращает индекс указанного компонента в этом JPopupMenu.

  1. статическое логическое значение getDefaultLightWeightPopupEnabled ()

Этот метод возвращает значение свойства defaultLightWeightPopupEnabled, которое по умолчанию имеет значение true.

  1. static void setDefaultLightWeightPopupEnabled (логическое значение aFlag)

Этот метод устанавливает значение свойства defaultLightWeightPopupEnabled.

  1. Строка getLabel ()

Этот метод возвращает метку этого меню.

  1. void setLabel (String label)

Этот метод устанавливает метку для этого меню.

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

Этот метод возвращает поле в пикселях между границей этого меню и его контейнерами.

  1. логическое isLightWeightPopupEnabled ()

Этот метод возвращает свойство «lightWeightPopupEnabled».

  1. void setLightWeightPopupEnabled (логический aFlag)

Этот метод устанавливает свойство «lightWeightPopupEnabled», которое по умолчанию имеет значение true.

  1. логическое значение isVisible ()

Этот метод возвращает текущую видимость этого меню.

  1. void setVisible (логическое значение b)

Этот метод устанавливает видимость меню.

  1. Защищенная строка paramString ()

Этот метод возвращает строковое представление этого меню.

  1. void remove (int pos)

Этот метод удаляет компонент по указанному индексу из этого меню.

  1. void setLocation (int x, int y)

Этот метод устанавливает местоположение верхнего левого угла этого меню, используя координаты x и y.

  1. void setPopupSize (int width, int height)

Этот метод устанавливает размер этого окна меню на указанную высоту и ширину.

  1. void setPopupSize (Размер d)

Этот метод устанавливает размер этого окна меню в указанное измерение.

  1. PopupMenuUI getUI ()

Этот метод возвращает внешний вид этого меню.

  1. void setUI (PopupMenuUI ui)

Этот метод устанавливает внешний вид этого меню.

  1. void updateUI ()

Этот метод сбрасывает внешний вид этого меню.

  1. void insert (Action a, int index)

Этот метод вставляет пункт меню в меню с указанным действием по указанному индексу.

  1. void insert (компонентный компонент, int index)

Этот метод вставляет пункт меню в меню по указанному индексу.

  1. void show (Компонент invoker, int x, int y)

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

  1. void addPopupMenuListener (PopupMenuListener l)

Этот метод добавляет слушателя в это всплывающее меню, с помощью которого мы можем проверить, когда всплывающее меню является видимым, невидимым и отменяется.

Рекомендуемые статьи

Это руководство по JPopupMenu. Здесь мы обсуждаем пример и конструктор с программой и объяснением JPopupMenu. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Java аннотации
  2. Квадратный корень на Яве
  3. CardLayout в Java
  4. Распечатать массив в Java
  5. JLabel на Java
  6. Квадратный корень в PHP