- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.SliderUI
-
- javax.swing.plaf.basic.BasicSliderUI
-
- Direct Known Subclasses:
- MetalSliderUI, SynthSliderUI
public class BasicSliderUI extends SliderUI
A Basic L&F implementation of SliderUI.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description classBasicSliderUI.ActionScrollerAs of Java 2 platform v1.3 this undocumented class is no longer used.classBasicSliderUI.ChangeHandlerData model listener.classBasicSliderUI.ComponentHandlerListener for resizing events.classBasicSliderUI.FocusHandlerFocus-change listener.classBasicSliderUI.PropertyChangeHandlerclassBasicSliderUI.ScrollListenerScroll-event listener.classBasicSliderUI.TrackListenerTrack mouse movements.
-
Field Summary
Fields Modifier and Type Field and Description protected ChangeListenerchangeListenerprotected ComponentListenercomponentListenerprotected RectanglecontentRectprotected InsetsfocusInsetsprotected FocusListenerfocusListenerprotected RectanglefocusRectprotected InsetsinsetCacheprotected RectanglelabelRectprotected booleanleftToRightCachestatic intMAX_SCROLLstatic intMIN_SCROLLstatic intNEGATIVE_SCROLLstatic intPOSITIVE_SCROLLprotected PropertyChangeListenerpropertyChangeListenerprotected BasicSliderUI.ScrollListenerscrollListenerprotected TimerscrollTimerprotected JSlidersliderprotected RectanglethumbRectprotected RectangletickRectprotected inttrackBufferprotected BasicSliderUI.TrackListenertrackListenerprotected RectangletrackRect
-
Constructor Summary
Constructors Constructor and Description BasicSliderUI(JSlider b)
-
Method Summary
Methods Modifier and Type Method and Description protected voidcalculateContentRect()protected voidcalculateFocusRect()protected voidcalculateGeometry()protected voidcalculateLabelRect()protected voidcalculateThumbLocation()protected voidcalculateThumbSize()protected voidcalculateTickRect()protected voidcalculateTrackBuffer()protected voidcalculateTrackRect()protected ChangeListenercreateChangeListener(JSlider slider)protected ComponentListenercreateComponentListener(JSlider slider)protected FocusListenercreateFocusListener(JSlider slider)protected PropertyChangeListenercreatePropertyChangeListener(JSlider slider)protected BasicSliderUI.ScrollListenercreateScrollListener(JSlider slider)protected BasicSliderUI.TrackListenercreateTrackListener(JSlider slider)static ComponentUIcreateUI(JComponent b)protected booleandrawInverted()intgetBaseline(JComponent c, int width, int height)Returns the baseline.Component.BaselineResizeBehaviorgetBaselineResizeBehavior(JComponent c)Returns an enum indicating how the baseline of the component changes as the size changes.protected ColorgetFocusColor()protected intgetHeightOfHighValueLabel()protected intgetHeightOfLowValueLabel()protected intgetHeightOfTallestLabel()protected IntegergetHighestValue()Returns the biggest value that has an entry in the label table.protected ComponentgetHighestValueLabel()Returns the label that corresponds to the lowest slider value in the label table.protected ColorgetHighlightColor()protected IntegergetLowestValue()Returns the smallest value that has an entry in the label table.protected ComponentgetLowestValueLabel()Returns the label that corresponds to the highest slider value in the label table.DimensiongetMaximumSize(JComponent c)Returns the specified component's maximum size appropriate for the look and feel.DimensiongetMinimumHorizontalSize()DimensiongetMinimumSize(JComponent c)Returns the specified component's minimum size appropriate for the look and feel.DimensiongetMinimumVerticalSize()DimensiongetPreferredHorizontalSize()DimensiongetPreferredSize(JComponent c)Returns the specified component's preferred size appropriate for the look and feel.DimensiongetPreferredVerticalSize()protected ColorgetShadowColor()protected DimensiongetThumbSize()protected intgetTickLength()Gets the height of the tick area for horizontal sliders and the width of the tick area for vertical sliders.protected intgetWidthOfHighValueLabel()protected intgetWidthOfLowValueLabel()protected intgetWidthOfWidestLabel()protected voidinstallDefaults(JSlider slider)protected voidinstallKeyboardActions(JSlider slider)protected voidinstallListeners(JSlider slider)voidinstallUI(JComponent c)Configures the specified component appropriately for the look and feel.protected booleanisDragging()Returns true if the user is dragging the slider.protected booleanlabelsHaveSameBaselines()Returns true if all the labels from the label table have the same baseline.voidpaint(Graphics g, JComponent c)Paints the specified component appropriately for the look and feel.voidpaintFocus(Graphics g)protected voidpaintHorizontalLabel(Graphics g, int value, Component label)Called for every label in the label table.voidpaintLabels(Graphics g)protected voidpaintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)protected voidpaintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)protected voidpaintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)protected voidpaintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)voidpaintThumb(Graphics g)voidpaintTicks(Graphics g)voidpaintTrack(Graphics g)protected voidpaintVerticalLabel(Graphics g, int value, Component label)Called for every label in the label table.protected voidrecalculateIfInsetsChanged()protected voidrecalculateIfOrientationChanged()voidscrollByBlock(int direction)voidscrollByUnit(int direction)protected voidscrollDueToClickInTrack(int dir)This function is called when a mousePressed was detected in the track, not in the thumb.voidsetThumbLocation(int x, int y)protected voiduninstallDefaults(JSlider slider)protected voiduninstallKeyboardActions(JSlider slider)protected voiduninstallListeners(JSlider slider)voiduninstallUI(JComponent c)Reverses configuration which was done on the specified component duringinstallUI.intvalueForXPosition(int xPos)Returns the value at the x position.intvalueForYPosition(int yPos)Returns the value at the y position.protected intxPositionForValue(int value)protected intyPositionForValue(int value)protected intyPositionForValue(int value, int trackY, int trackHeight)Returns the y location for the specified value.-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
-
-
-
-
Field Detail
-
POSITIVE_SCROLL
public static final int POSITIVE_SCROLL
- See Also:
- Constant Field Values
-
NEGATIVE_SCROLL
public static final int NEGATIVE_SCROLL
- See Also:
- Constant Field Values
-
MIN_SCROLL
public static final int MIN_SCROLL
- See Also:
- Constant Field Values
-
MAX_SCROLL
public static final int MAX_SCROLL
- See Also:
- Constant Field Values
-
scrollTimer
protected Timer scrollTimer
-
slider
protected JSlider slider
-
focusInsets
protected Insets focusInsets
-
insetCache
protected Insets insetCache
-
leftToRightCache
protected boolean leftToRightCache
-
focusRect
protected Rectangle focusRect
-
contentRect
protected Rectangle contentRect
-
labelRect
protected Rectangle labelRect
-
tickRect
protected Rectangle tickRect
-
trackRect
protected Rectangle trackRect
-
thumbRect
protected Rectangle thumbRect
-
trackBuffer
protected int trackBuffer
-
trackListener
protected BasicSliderUI.TrackListener trackListener
-
changeListener
protected ChangeListener changeListener
-
componentListener
protected ComponentListener componentListener
-
focusListener
protected FocusListener focusListener
-
scrollListener
protected BasicSliderUI.ScrollListener scrollListener
-
propertyChangeListener
protected PropertyChangeListener propertyChangeListener
-
-
Constructor Detail
-
BasicSliderUI
public BasicSliderUI(JSlider b)
-
-
Method Detail
-
getShadowColor
protected Color getShadowColor()
-
getHighlightColor
protected Color getHighlightColor()
-
getFocusColor
protected Color getFocusColor()
-
isDragging
protected boolean isDragging()
Returns true if the user is dragging the slider.- Returns:
- true if the user is dragging the slider
- Since:
- 1.5
-
createUI
public static ComponentUI createUI(JComponent b)
-
installUI
public void installUI(JComponent c)
Description copied from class:ComponentUIConfigures the specified component appropriately for the look and feel. This method is invoked when theComponentUIinstance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:- Install default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
- Install a
LayoutManageron the component if necessary. - Create/add any required sub-components to the component.
- Create/install event listeners on the component.
- Create/install a
PropertyChangeListeneron the component in order to detect and respond to component property changes appropriately. - Install keyboard UI (mnemonics, traversal, etc.) on the component.
- Initialize any appropriate instance data.
- Overrides:
installUIin classComponentUI- Parameters:
c- the component where this UI delegate is being installed- See Also:
ComponentUI.uninstallUI(javax.swing.JComponent),JComponent.setUI(javax.swing.plaf.ComponentUI),JComponent.updateUI()
-
uninstallUI
public void uninstallUI(JComponent c)
Description copied from class:ComponentUIReverses configuration which was done on the specified component duringinstallUI. This method is invoked when thisUIComponentinstance is being removed as the UI delegate for the specified component. This method should undo the configuration performed ininstallUI, being careful to leave theJComponentinstance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:- Remove any UI-set borders from the component.
- Remove any UI-set layout managers on the component.
- Remove any UI-added sub-components from the component.
- Remove any UI-added event/property listeners from the component.
- Remove any UI-installed keyboard UI from the component.
- Nullify any allocated instance data objects to allow for GC.
- Overrides:
uninstallUIin classComponentUI- Parameters:
c- the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- See Also:
ComponentUI.installUI(javax.swing.JComponent),JComponent.updateUI()
-
installDefaults
protected void installDefaults(JSlider slider)
-
uninstallDefaults
protected void uninstallDefaults(JSlider slider)
-
createTrackListener
protected BasicSliderUI.TrackListener createTrackListener(JSlider slider)
-
createChangeListener
protected ChangeListener createChangeListener(JSlider slider)
-
createComponentListener
protected ComponentListener createComponentListener(JSlider slider)
-
createFocusListener
protected FocusListener createFocusListener(JSlider slider)
-
createScrollListener
protected BasicSliderUI.ScrollListener createScrollListener(JSlider slider)
-
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener(JSlider slider)
-
installListeners
protected void installListeners(JSlider slider)
-
uninstallListeners
protected void uninstallListeners(JSlider slider)
-
installKeyboardActions
protected void installKeyboardActions(JSlider slider)
-
uninstallKeyboardActions
protected void uninstallKeyboardActions(JSlider slider)
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
Returns the baseline.- Overrides:
getBaselinein classComponentUI- Parameters:
c-JComponentbaseline is being requested forwidth- the width to get the baseline forheight- the height to get the baseline for- Returns:
- baseline or a value < 0 indicating there is no reasonable baseline
- Throws:
NullPointerException- ifcisnullIllegalArgumentException- if width or height is < 0- Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
-
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Returns an enum indicating how the baseline of the component changes as the size changes.- Overrides:
getBaselineResizeBehaviorin classComponentUI- Parameters:
c-JComponentto return baseline resize behavior for- Returns:
- an enum indicating how the baseline changes as the component size changes
- Throws:
NullPointerException- ifcisnull- Since:
- 1.6
- See Also:
JComponent.getBaseline(int, int)
-
labelsHaveSameBaselines
protected boolean labelsHaveSameBaselines()
Returns true if all the labels from the label table have the same baseline.- Returns:
- true if all the labels from the label table have the same baseline
- Since:
- 1.6
-
getPreferredHorizontalSize
public Dimension getPreferredHorizontalSize()
-
getPreferredVerticalSize
public Dimension getPreferredVerticalSize()
-
getMinimumHorizontalSize
public Dimension getMinimumHorizontalSize()
-
getMinimumVerticalSize
public Dimension getMinimumVerticalSize()
-
getPreferredSize
public Dimension getPreferredSize(JComponent c)
Description copied from class:ComponentUIReturns the specified component's preferred size appropriate for the look and feel. Ifnullis returned, the preferred size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method returnsnull.- Overrides:
getPreferredSizein classComponentUI- Parameters:
c- the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- See Also:
JComponent.getPreferredSize(),LayoutManager.preferredLayoutSize(java.awt.Container)
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)
Description copied from class:ComponentUIReturns the specified component's minimum size appropriate for the look and feel. Ifnullis returned, the minimum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokesgetPreferredSizeand returns that value.- Overrides:
getMinimumSizein classComponentUI- Parameters:
c- the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- Returns:
- a
Dimensionobject ornull - See Also:
JComponent.getMinimumSize(),LayoutManager.minimumLayoutSize(java.awt.Container),ComponentUI.getPreferredSize(javax.swing.JComponent)
-
getMaximumSize
public Dimension getMaximumSize(JComponent c)
Description copied from class:ComponentUIReturns the specified component's maximum size appropriate for the look and feel. Ifnullis returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokesgetPreferredSizeand returns that value.- Overrides:
getMaximumSizein classComponentUI- Parameters:
c- the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- Returns:
- a
Dimensionobject ornull - See Also:
JComponent.getMaximumSize(),LayoutManager2.maximumLayoutSize(java.awt.Container)
-
calculateGeometry
protected void calculateGeometry()
-
calculateFocusRect
protected void calculateFocusRect()
-
calculateThumbSize
protected void calculateThumbSize()
-
calculateContentRect
protected void calculateContentRect()
-
calculateThumbLocation
protected void calculateThumbLocation()
-
calculateTrackBuffer
protected void calculateTrackBuffer()
-
calculateTrackRect
protected void calculateTrackRect()
-
getTickLength
protected int getTickLength()
Gets the height of the tick area for horizontal sliders and the width of the tick area for vertical sliders. BasicSliderUI uses the returned value to determine the tick area rectangle. If you want to give your ticks some room, make this larger than you need and paint your ticks away from the sides in paintTicks().
-
calculateTickRect
protected void calculateTickRect()
-
calculateLabelRect
protected void calculateLabelRect()
-
getThumbSize
protected Dimension getThumbSize()
-
getWidthOfWidestLabel
protected int getWidthOfWidestLabel()
-
getHeightOfTallestLabel
protected int getHeightOfTallestLabel()
-
getWidthOfHighValueLabel
protected int getWidthOfHighValueLabel()
-
getWidthOfLowValueLabel
protected int getWidthOfLowValueLabel()
-
getHeightOfHighValueLabel
protected int getHeightOfHighValueLabel()
-
getHeightOfLowValueLabel
protected int getHeightOfLowValueLabel()
-
drawInverted
protected boolean drawInverted()
-
getHighestValue
protected Integer getHighestValue()
Returns the biggest value that has an entry in the label table.- Returns:
- biggest value that has an entry in the label table, or null.
- Since:
- 1.6
-
getLowestValue
protected Integer getLowestValue()
Returns the smallest value that has an entry in the label table.- Returns:
- smallest value that has an entry in the label table, or null.
- Since:
- 1.6
-
getLowestValueLabel
protected Component getLowestValueLabel()
Returns the label that corresponds to the highest slider value in the label table.
-
getHighestValueLabel
protected Component getHighestValueLabel()
Returns the label that corresponds to the lowest slider value in the label table.
-
paint
public void paint(Graphics g, JComponent c)
Description copied from class:ComponentUIPaints the specified component appropriately for the look and feel. This method is invoked from theComponentUI.updatemethod when the specified component is being painted. Subclasses should override this method and use the specifiedGraphicsobject to render the content of the component.- Overrides:
paintin classComponentUI- Parameters:
g- theGraphicscontext in which to paintc- the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components- See Also:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
recalculateIfInsetsChanged
protected void recalculateIfInsetsChanged()
-
recalculateIfOrientationChanged
protected void recalculateIfOrientationChanged()
-
paintFocus
public void paintFocus(Graphics g)
-
paintTrack
public void paintTrack(Graphics g)
-
paintTicks
public void paintTicks(Graphics g)
-
paintMinorTickForHorizSlider
protected void paintMinorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
-
paintMajorTickForHorizSlider
protected void paintMajorTickForHorizSlider(Graphics g, Rectangle tickBounds, int x)
-
paintMinorTickForVertSlider
protected void paintMinorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
-
paintMajorTickForVertSlider
protected void paintMajorTickForVertSlider(Graphics g, Rectangle tickBounds, int y)
-
paintLabels
public void paintLabels(Graphics g)
-
paintHorizontalLabel
protected void paintHorizontalLabel(Graphics g, int value, Component label)
Called for every label in the label table. Used to draw the labels for horizontal sliders. The graphics have been translated to labelRect.y already.
-
paintVerticalLabel
protected void paintVerticalLabel(Graphics g, int value, Component label)
Called for every label in the label table. Used to draw the labels for vertical sliders. The graphics have been translated to labelRect.x already.
-
paintThumb
public void paintThumb(Graphics g)
-
setThumbLocation
public void setThumbLocation(int x, int y)
-
scrollByBlock
public void scrollByBlock(int direction)
-
scrollByUnit
public void scrollByUnit(int direction)
-
scrollDueToClickInTrack
protected void scrollDueToClickInTrack(int dir)
This function is called when a mousePressed was detected in the track, not in the thumb. The default behavior is to scroll by block. You can override this method to stop it from scrolling or to add additional behavior.
-
xPositionForValue
protected int xPositionForValue(int value)
-
yPositionForValue
protected int yPositionForValue(int value)
-
yPositionForValue
protected int yPositionForValue(int value, int trackY, int trackHeight)Returns the y location for the specified value. No checking is done on the arguments. In particular iftrackHeightis negative undefined results may occur.- Parameters:
value- the slider value to get the location fortrackY- y-origin of the tracktrackHeight- the height of the track- Since:
- 1.6
-
valueForYPosition
public int valueForYPosition(int yPos)
Returns the value at the y position. IfyPosis beyond the track at the the bottom or the top, this method sets the value to either the minimum or maximum value of the slider, depending on if the slider is inverted or not.
-
valueForXPosition
public int valueForXPosition(int xPos)
Returns the value at the x position. IfxPosis beyond the track at the left or the right, this method sets the value to either the minimum or maximum value of the slider, depending on if the slider is inverted or not.
-
-
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 11/06/2005, zuletzt geändert 04/03/2020
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/java-api-rf-javax/swing/plaf/basic/basicsliderui.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor dieser Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.