Spec-Zone .ru
спецификации, руководства, описания, API
|
Popup
& PopupFactory
Бесспорный Component
s, такой как JPopupMenu
и JToolTip
, представьте себя, прежде всего, другой Component
s в определенной иерархии включения. А не каждый из них Component
s содержащий тот же самый код, чтобы получить то же самое поведение, они делегируют к a Popup
который может быть получен из a PopupFactory
. A Popup
в состоянии вывести на экран a Component
в определенном расположении на экране. Основанный на размере и расположении требуемого Component
, PopupFactory
возвращает соответствующее Popup
.
Ранее, Popup
и PopupFactory
был частный пакет. Для JDK 1.4, мы представили эти классы, чтобы позволить пользовательским реализациям стили создать свое собственное Popup
s. Это позволяет другому взгляду и чувствам располагать меню в соответствующий способ для их стили. С этой целью мы обнародовали эти классы:
public class PopupFactory { public static void setSharedInstance(PopupFactory factory); public static PopupFactory getSharedInstance(); public Popup getPopup(Component owner, Component contents, int x, int y) throws IllegalArgumentException; }
public class Popup { protected Popup(Component owner, Component contents, int x, int y); protected Popup(); public void show(); public void hide(); }
Включать Popup
используемый JPopupMenu
чтобы быть замененными UI, мы добавили следующий к PopupMenuUI
:
public Popup getPopup(JPopupMenu popup, int x, int y);
PopupMenuUI.getPopup
's реализация получает Popup
от совместно используемого PopupFactory
, но пользовательские реализации стили могут переопределить это и возвратиться что Popup
они требуют.
JPopupMenu
ранее определенный метод setLocation
. До этого выпуска этот метод вызвал бы setLocation
на Popup
, но поскольку мы удалили этот метод из Popup
, JPopupMenu
теперь воссоздает Popup
.
JPopupMenu
также определенный метод setPopupSize
, который вызвал setSize
на Popup
если это было видимо. Внутренне, мы изменили этот метод, чтобы установить привилегированный размер JPopupMenu
, который дает те же самые результаты. Если JPopupMenu
видимо, когда это вызывается, Popup
будет воссоздан. JPopupMenu
javadoc, измененный, чтобы отразить новое поведение:
public void setPopupSize(Dimension d); public void setPopupSize(int width, int height);