Spec-Zone .ru
спецификации, руководства, описания, API
|
Одна из новых функций, которая была представлена в Windows 2000, была свойством дисплея, которое скроет мнемосхему клавиатуры для пункта меню или диалогового управления, пока клавиша Alt не будет нажата. Другими словами все подчеркнутые символы, которые представляют комбинацию клавиши Alt, чтобы вызвать то меню или управление, не будут оттянуты, пока пользователь не укажет на намерение вызвать команду с клавиатурой, а не мышью. Результат этого поведения состоит в том, чтобы обеспечить интерфейс, который не визуально нарушен подчеркнутыми символами для людей, которые хотят перемещаться по пользовательскому интерфейсу с мышью.
Опция сокрытия перемещения с помощью клавиатуры будет автоматически активирована на Windows 2000, если приложение будет использовать стиль Windows, и свойство "Hide keyboard navigation indicators until I use the Alt key" включается в Windows 2000 "апплет панели управления" Свойств Дисплея.
Эти детали будут полезны для разработчиков, которые расширяют взгляд и чувства. Опция сокрытия перемещения с помощью клавиатуры будет автоматически активирована, когда приложение Java Windows Look and Feel будет запущено на Windows 2000.
Когда WindowsLookAndFeel
инстанцируется, это будет читать DesktopProperty
"win.menu.keyboardCuesOn". Это значение сохранено в UIManager
и может быть сослан, используя ключ: "Button.isMnemonicHidingEnabled". Статические методы setMnemonicHidden
и isMnemonicHidden
в WindowsLookAndFeel
обеспечьте доступ к этому значению.
Существующее BasicMenuItemUI.paintMenuItem()
метод ответственен за рендеринг фона, текста, значка и мнемосхемы пункта меню. Новый защищенный метод, paintText()
был извлечен из paintMenuItem()
, который является непротиворечивым на имя и подпись к подобному методу в BasicButtonUI
иерархия.
paintText()
методы перегружаются в WindowsMenuItemUI
и WindowsMenuUI
. Тело перегруженного paintText
метод проверяет isMnemonicEnabled
флаг в WindowsLookAndFeel
class, чтобы определить, должна ли мнемосхема быть скрыта и затем соответственно представляет текст.
BasicButtonUI
уже определенный защищенный метод paintText
. WindowsButtonUI
и подобные классы, перегруженные этот метод почти таким же способом. Новый class был представлен, WindowsGraphicsUtils
, консолидировать весь paintText
методы. Это было сделано потому что Windows... Классы UI не следуют за той же самой иерархией наследования как Основное.. Классы UI.
Новое RootPaneUI
делегата вызывают WindowsRootPaneUI
создавался для стили Windows. Этому class зарегистрировали действие, чтобы сбросить мнемосхему скрытый бит и перекрасить ui, когда клавиша Alt была нажата.
Все эти методы были добавлены как результат реализования этой опции. У этих методов только будет значение разработчикам, которые хотят расширить или создать Стиль.
/** * Renders the text of the current menu item. * * @param g graphics context * @param menuItem menu item to render * @param textRect bounding rectangle for rendering the text * @param text String to render * @since 1.4 */ protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
/** * Windows implementation of RootPaneUI. One WindowsRootPaneUI * object is shared between all JRootPane instances. * * @version 1.1 08/16/00 * @author Mark Davidson * @since 1.4 */ public class WindowsRootPaneUI extends BasicRootPaneUI
/** * A collection of static utility methods used for rendering the * Windows look and feel. * * @Version 1.1 08/16/00 * @author Mark Davidson * @since 1.4 */ public class WindowsGraphicsUtils
/** * Sets the state of the hide mnemonic flag. This flag is used by the * component UI delegates to determine if the mnemonic should be rendered. * This method is a non operation if the underlying operating system * does not support the mnemonic hiding feature. * * @param hide true if mnemonics should be hidden * @since 1.4 */ public static void setMnemonicHidden(boolean hide) /** * Gets the state of the hide mnemonic flag. This only has meaning * if this feature is supported by the underlying OS. * * @return true if mnemonics are hidden, otherwise, false * @see #setMnemonicHidden * @since 1.4 */ public static Boolean isMnemonicHidden() /** * Gets the state of the flag which indicates if the old Windows * look and feel should be rendered. This flag is used by the * component UI delegates as a hint to determine which style the component * should be rendered. * * @return true if Windows 95 and Windows NT 4 look and feel should * be rendered * @since 1.4 */ public static Boolean isClassicWindows()