Блокування та розблокування пунктів меню, блог тільки про java

Щоб розблокувати або заблокувати пункт меню, використовується метод setEnabled ().
saveItem. setEnabled (false);
Існують дві стратегії блокування і розблокування пунктів меню. При кожній зміні стану програми можна викликати метод setEnabled (). застосовуючи його до відповідного пункту меню. Наприклад, відкривши документ тільки для читання, можна заблокувати Save і Save as. Однак, користуючись цією стратегією, програміст ризикує засмітити код фрагментами, призначеними для зміни стану пунктів меню. Набагато краще зовсім не турбуватися про стан пунктів меню в основній частині програми і задавати їх параметри безпосередньо перед відображенням на екрані.
Для цього потрібно зареєструвати обробник подій, пов'язаних з вибором меню. У пакеті javax.swing.event міститься інтерфейс MenuListener. в якому оголошено три методи:
- void menuSelected (MenuEvent event)
- void menuDeselected (MenuEvent event)
- void menuCanceled (MenuEvent event)
Метод menuSelected () викликається перш ніж можна буде меню на екрані. Це найкращий момент для того, щоб заблокувати або розблокувати пункти меню. У наведеному нижче фрагменті коду показано, як блокуються і розблоковуються пункти пункти Save і Save As. в залежності від стану прапорця Read Only.
public void menuSelected (MenuEvent event)
saveAction. setEnabled (. readonlyItem. isSelected ());
saveAsAction. setEnabled (. readonlyItem. isSelected ());
Нижче наведено приклад програми, яка генерує набір меню. У ньому продемонстровані всі особливості меню, описані в цьому розділі: вкладені меню, заблоковані пункти, прапорці опцій і перемикачі в пунктах меню, а також клавіші швидкого доступу і клавіатурні скорочення.