|
Spec-Zone .ru
спецификации, руководства, описания, API
|
V - тип JLayer's просматривают компонентpublic final class JLayer<V extends Component> extends JComponent implements Scrollable, PropertyChangeListener, Accessible
JLayer универсальный декоратор для компонентов Swing, который позволяет Вам реализовать различные усовершенствованные эффекты рисования так же как получить уведомления обо всех AWTEvents сгенерированный в пределах его границ.
JLayer делегирует обработку событий рисования и ввода к a LayerUI объект, который выполняет фактическое художественное оформление. Пользовательское рисование, реализованное в LayerUI и уведомление о событиях работает на JLayer непосредственно и все его субкомпоненты. Эта комбинация позволяет Вам обогатить существующие компоненты, добавляя новую усовершенствованную функциональность, такие как временная блокировка иерархии, подсказок по данным для составных компонентов, улучшенная мышь, прокручивающая и т.д. и так далее.
JLayer хорошее решение, если Вы только должны сделать пользовательское рисование по составному компоненту или входным событиям выгоды от его субкомпонентов.
import javax.swing.*;
import javax.swing.plaf.LayerUI;
import java.awt.*;
public class JLayerSample {
private static JLayer<JComponent> createLayer() {
// This custom layerUI will fill the layer with translucent green
// and print out all mouseMotion events generated within its borders
LayerUI<JComponent> layerUI = new LayerUI<JComponent>() {
public void paint(Graphics g, JComponent c) {
// paint the layer as is
super.paint(g, c);
// fill it with the translucent green
g.setColor(new Color(0, 128, 0, 128));
g.fillRect(0, 0, c.getWidth(), c.getHeight());
}
public void installUI(JComponent c) {
super.installUI(c);
// enable mouse motion events for the layer's subcomponents
((JLayer) c).setLayerEventMask(AWTEvent.MOUSE_MOTION_EVENT_MASK);
}
public void uninstallUI(JComponent c) {
super.uninstallUI(c);
// reset the layer event mask
((JLayer) c).setLayerEventMask(0);
}
// overridden method which catches MouseMotion events
public void eventDispatched(AWTEvent e, JLayer<? extends JComponent> l) {
System.out.println("AWTEvent detected: " + e);
}
};
// create a component to be decorated with the layer
JPanel panel = new JPanel();
panel.add(new JButton("JButton"));
// create the layer for the panel using our custom layerUI
return new JLayer<JComponent>(panel, layerUI);
}
private static void createAndShowGUI() {
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// work with the layer as with any other Swing component
frame.add(createLayer());
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Отметьте: JLayer не поддерживает следующие методы: Container.add(java.awt.Component)Container.add(String, java.awt.Component)Container.add(java.awt.Component, int)Container.add(java.awt.Component, Object)Container.add(java.awt.Component, Object, int)UnsupportedOperationException быть брошенным, добавить компонент к JLayer использовать setView(Component) или setGlassPane(JPanel).JLayer(Component), setView(Component), getView(), LayerUI, JLayer(Component, LayerUI), setUI(javax.swing.plaf.LayerUI), getUI()JComponent. AccessibleJComponentКонтейнер. AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Конструктор и Описание |
|---|
JLayer()
|
JLayer(V view)
Создает новое
JLayer объект со значением по умолчанию LayerUI. |
JLayer(V view, LayerUI<V> ui)
Создает новое
JLayer объект с указанным компонентом представления и LayerUI объект. |
| Модификатор и Тип | Метод и Описание |
|---|---|
protected void |
addImpl(Component comp, Object constraints, int index)
Этот метод не поддерживается
JLayer и всегда броски UnsupportedOperationException |
void |
addNotify()
Уведомляет этот компонент, что у него теперь есть родительский компонент.
|
JPanel |
createGlassPane()
Вызванный методами конструктора, чтобы создать значение по умолчанию
glassPane. |
void |
doLayout()
Делегирует его функциональность к
LayerUI.doLayout(JLayer) метод, если LayerUI устанавливается. |
AccessibleContext |
getAccessibleContext()
Связали AccessibleContext с этим
JLayer. |
JPanel |
getGlassPane()
Возвраты
JLayer's glassPane компонент или null. |
long |
getLayerEventMask()
Возвращает битовый массив маски события, чтобы получить этим
JLayer и LayerUI. |
Размерность |
getPreferredScrollableViewportSize()
Возвращает привилегированный размер области просмотра для компонента представления.
|
int |
getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает инкремент прокрутки, который требуется для компонентов, которые выводят на экран логические строки или столбцы, чтобы полностью представить один блок строк или столбцов, в зависимости от значения ориентации.
|
boolean |
getScrollableTracksViewportHeight()
Возвраты
false указать, что height области просмотра не определяет height уровня, если привилегированный height уровня не меньше чем height области просмотра. |
boolean |
getScrollableTracksViewportWidth()
Возвраты
false указать, что width области просмотра не определяет width уровня, если привилегированный width уровня не меньше чем width области просмотра. |
int |
getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает инкремент прокрутки, который требуется для компонентов, которые выводят на экран логические строки или столбцы, чтобы полностью представить одну новую строку или столбец, в зависимости от значения ориентации.
|
LayerUI<? super V> |
getUI()
Возвраты
LayerUI для этого JLayer. |
V |
getView()
Возвраты
JLayer's просматривают компонент или null. |
boolean |
isOptimizedDrawingEnabled()
JLayer переопределяет реализацию по умолчанию этого метода (в JComponent) возвратиться false. |
protected boolean |
isPaintingOrigin()
Всегда возвраты
true заставить рисование происходить из JLayer, или один из его предков. |
void |
paint(Graphics g)
Делегаты все рисование к
LayerUI объект. |
protected void |
paintComponent(Graphics g)
Этот метод пуст, потому что все рисование делается
paint(Graphics) и ComponentUI.update(Graphics, JComponent) методы |
void |
paintImmediately(int x, int y, int w, int h)
Делегирует его функциональность к
LayerUI.paintImmediately(int, int, int, int, JLayer) метод, если LayerUI устанавливается. |
void |
propertyChange(PropertyChangeEvent evt)
Этот метод вызывают, когда связанное свойство изменяется.
|
void |
remove(Component comp)
Удаляет указанный компонент из этого контейнера.
|
void |
removeAll()
Удаляет все компоненты из этого контейнера.
|
void |
removeNotify()
Уведомляет этот компонент, что у него больше нет родительского компонента.
|
void |
setBorder(Border border)
Не -
null граница, или ненулевые вставки, не поддерживается, чтобы препятствовать тому, чтобы геометрия этого компонента стала достаточно сложной, чтобы запретить разделение на подклассы LayerUI class. |
void |
setGlassPane(JPanel glassPane)
Наборы
JLayer's glassPane компонент, который может быть null. |
void |
setLayerEventMask(long layerEventMask)
Позволяет событиям от JLayer и всех его потомков, определенных указанным параметром маски события быть поставленными
LayerUI.eventDispatched(AWTEvent, JLayer) метод. |
void |
setLayout(LayoutManager mgr)
Устанавливает менеджера по расположению по этому контейнеру.
|
void |
setUI(LayerUI<? super V> ui)
Наборы
LayerUI который выполнит рисование и получит входные события для этого JLayer. |
void |
setView(V view)
Наборы
JLayer's просматривают компонент, который может быть null. |
void |
updateUI()
Делегирует его функциональность к
LayerUI.updateUI(JLayer) метод, если LayerUI устанавливается. |
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic JLayer()
setView(V), setUI(javax.swing.plaf.LayerUI<? super V>)public JLayer(V view)
JLayer объект со значением по умолчанию LayerUI.view - компонент, который будет украшен этим JLayersetUI(javax.swing.plaf.LayerUI<? super V>)public V getView()
JLayer's просматривают компонент или null. JLayer's просматривают компонент или null если ни один не существуетsetView(Component)public void setView(V view)
JLayer's просматривают компонент, который может быть null. view - компонент представления для этого JLayergetView()public void setUI(LayerUI<? super V> ui)
LayerUI который выполнит рисование и получит входные события для этого JLayer.ui - LayerUI для этого JLayerpublic LayerUI<? super V> getUI()
LayerUI для этого JLayer.LayerUI для этого JLayerpublic JPanel getGlassPane()
JLayer's glassPane компонент или null. JLayer's glassPane компонент или null если ни один не существуетsetGlassPane(JPanel)public void setGlassPane(JPanel glassPane)
JLayer's glassPane компонент, который может быть null. glassPane - glassPane компонент этого JLayergetGlassPane()public JPanel createGlassPane()
glassPane. По умолчанию этот метод создает новый JPanel с набором видимости к истине и набором непрозрачности ко лжи.glassPanepublic void setLayout(LayoutManager mgr)
mgr не -null, этот метод выдаст исключение, поскольку менеджеры по расположению не поддерживаются на a JLayer.setLayout в class Containermgr - указанный менеджер по расположениюIllegalArgumentException - этот метод не поддерживаетсяContainer.doLayout(), Container.getLayout(), Container.invalidate()public void setBorder(Border border)
null граница, или ненулевые вставки, не поддерживается, чтобы препятствовать тому, чтобы геометрия этого компонента стала достаточно сложной, чтобы запретить разделение на подклассы LayerUI class. Создать a JLayer с границей добавьте это к a JPanel у этого есть граница. Отметьте: Если border не -null, этот метод выдаст исключение, поскольку границы не поддерживаются на a JLayer.setBorder в class JComponentborder - Border установитьIllegalArgumentException - этот метод не поддерживаетсяBorder, CompoundBorderprotected void addImpl(Component comp, Object constraints, int index)
JLayer и всегда броски UnsupportedOperationExceptionaddImpl в class Containercomp - компонент, который будет добавленconstraints - объект, выражающий ограничения расположения для этого компонентаindex - позиция в списке контейнера, в котором можно вставить компонент, где -1 средства добавляют до концаUnsupportedOperationException - этот метод не поддерживаетсяsetView(Component), setGlassPane(JPanel)public void remove(Component comp)
removeLayoutComponent метод. Этот метод изменяет связанную с расположением информацию, и поэтому, лишает законной силы иерархию компонентов. Если контейнер был уже выведен на экран, иерархия должна быть проверена после того, чтобы отразить изменения.
remove в class Containercomp - компонент, который будет удаленContainer.add(java.awt.Component), Container.invalidate(), Container.validate(), Container.remove(int)public void removeAll()
removeLayoutComponent метод. Этот метод изменяет связанную с расположением информацию, и поэтому, лишает законной силы иерархию компонентов. Если контейнер был уже выведен на экран, иерархия должна быть проверена после того, чтобы отразить изменения.
removeAll в class ContainerContainer.add(java.awt.Component), Container.remove(int), Container.invalidate()protected boolean isPaintingOrigin()
true заставить рисование происходить из JLayer, или один из его предков.isPaintingOrigin в class JComponentJComponent.isPaintingOrigin()public void paintImmediately(int x,
int y,
int w,
int h)
LayerUI.paintImmediately(int, int, int, int, JLayer) метод, если LayerUI устанавливается.paintImmediately в class JComponentx - x значение области, которая будет нарисованаy - y значение области, которая будет нарисованаw - width области, которая будет нарисованаh - height области, которая будет нарисованаJComponent.repaint(long, int, int, int, int), JComponent.isPaintingOrigin()public void paint(Graphics g)
LayerUI объект.paint в class JComponentg - Graphics представлять кJComponent.paintComponent(java.awt.Graphics), JComponent.paintBorder(java.awt.Graphics), JComponent.paintChildren(java.awt.Graphics), JComponent.getComponentGraphics(java.awt.Graphics), JComponent.repaint(long, int, int, int, int)protected void paintComponent(Graphics g)
paint(Graphics) и ComponentUI.update(Graphics, JComponent) методыpaintComponent в class JComponentg - Graphics объект защититьJComponent.paint(java.awt.Graphics), ComponentUIpublic boolean isOptimizedDrawingEnabled()
JLayer переопределяет реализацию по умолчанию этого метода (в JComponent) возвратиться false. Это гарантирует, что машина рисунка вызовет JLayer's paint реализация, а не обмен сообщениями JLayer's дочерние элементы непосредственно.isOptimizedDrawingEnabled в class JComponentpublic void propertyChange(PropertyChangeEvent evt)
propertyChange в интерфейсе PropertyChangeListenerevt - Описание объекта PropertyChangeEvent источника события и свойства, которое изменилось.public void setLayerEventMask(long layerEventMask)
LayerUI.eventDispatched(AWTEvent, JLayer) метод. События поставляются при условии, что LayerUI устанавливается для этого JLayer и JLayer является визуализуемым. Следующий пример показывает, как правильно использовать этот метод в LayerUI реализации:
public void installUI(JComponent c) {
super.installUI(c);
JLayer l = (JLayer) c;
// this LayerUI will receive only key and focus events
l.setLayerEventMask(AWTEvent.KEY_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);
}
public void uninstallUI(JComponent c) {
super.uninstallUI(c);
JLayer l = (JLayer) c;
// JLayer must be returned to its initial state
l.setLayerEventMask(0);
}
По умолчанию JLayer не получает событий, и его маска события 0.layerEventMask - битовая маска события вводит, чтобы получитьgetLayerEventMask(), LayerUI.eventDispatched(AWTEvent, JLayer), Component.isDisplayable()public long getLayerEventMask()
JLayer и LayerUI. Это означает это LayerUI.eventDispatched(AWTEvent, JLayer) метод только получит события, которые соответствуют маску события. По умолчанию JLayer не получает событий.JLayerpublic void updateUI()
LayerUI.updateUI(JLayer) метод, если LayerUI устанавливается.updateUI в class JComponentJComponent.setUI(javax.swing.plaf.ComponentUI), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)public Dimension getPreferredScrollableViewportSize()
Scrollable, этот метод делегирует свою реализацию к компоненту представления.getPreferredScrollableViewportSize в интерфейсе ScrollableScrollablepublic int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Scrollable, этот метод делегирует свою реализацию к компоненту представления.getScrollableBlockIncrement в интерфейсе ScrollablevisibleRect - Область представления, видимая в пределах области просмотраorientation - Любой SwingConstants. ВЕРТИКАЛЬ или SwingConstants. ГОРИЗОНТАЛЬ.direction - Меньше чем нуль, чтобы прокрутить/левый, больше чем нуль для вниз/право.Scrollablepublic boolean getScrollableTracksViewportHeight()
false указать, что height области просмотра не определяет height уровня, если привилегированный height уровня не меньше чем height области просмотра. Если компонент представления этого уровня реализации Scrollable, этот метод делегирует свою реализацию к компоненту представления.getScrollableTracksViewportHeight в интерфейсе ScrollableScrollablepublic boolean getScrollableTracksViewportWidth()
false указать, что width области просмотра не определяет width уровня, если привилегированный width уровня не меньше чем width области просмотра. Если компонент представления этого уровня реализации Scrollable, этот метод делегирует свою реализацию к компоненту представления.getScrollableTracksViewportWidth в интерфейсе ScrollableScrollablepublic int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
JScrollPane, будет использовать этот метод каждый раз, когда пользователь запрашивает прокрутку модуля. Если компонент представления этого уровня реализации Scrollable, этот метод делегирует свою реализацию к компоненту представления.getScrollableUnitIncrement в интерфейсе ScrollablevisibleRect - Область представления, видимая в пределах области просмотраorientation - Любой SwingConstants. ВЕРТИКАЛЬ или SwingConstants. ГОРИЗОНТАЛЬ.direction - Меньше чем нуль, чтобы прокрутить/левый, больше чем нуль для вниз/право.Scrollablepublic void addNotify()
KeyboardAction слушатели события. Этот метод вызывает инструментарий внутренне и не должен быть вызван непосредственно программами.addNotify в class JComponentJComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public void removeNotify()
KeyboardActions установленный в цепочка родительских компонентов удаляются. Этот метод вызывает инструментарий внутренне и не должен быть вызван непосредственно программами.removeNotify в class JComponentJComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public void doLayout()
LayerUI.doLayout(JLayer) метод, если LayerUI устанавливается.doLayout в class ContainerLayoutManager.layoutContainer(java.awt.Container), Container.setLayout(java.awt.LayoutManager), Container.validate()public AccessibleContext getAccessibleContext()
JLayer.getAccessibleContext в интерфейсе AccessiblegetAccessibleContext в class ComponentJLayer.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92