📄 motifmthumbsliderui.java
字号:
/* (swing1.1.1) */package tame.slider;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Rectangle;import javax.swing.JComponent;import javax.swing.JSlider;import javax.swing.event.ChangeListener;import javax.swing.event.MouseInputAdapter;import javax.swing.plaf.ComponentUI;import com.sun.java.swing.plaf.motif.MotifSliderUI;/**@author Nobuo Tamemasa, Andrew Thompson@version 1.0 09/08/99, 1.1 2004/03/05*/public class MotifMThumbSliderUI extends MotifSliderUI implements MThumbSliderAdditional { MThumbSliderAdditionalUI additonalUi; MouseInputAdapter mThumbTrackListener; /** Moved from below in 2004 changes. */ Rectangle zeroRect = new Rectangle(); public static ComponentUI createUI(JComponent c) { return new MotifMThumbSliderUI((JSlider)c); } public MotifMThumbSliderUI() { super(null); } public MotifMThumbSliderUI(JSlider b) { super(b); } public void installUI(JComponent c) { additonalUi = new MThumbSliderAdditionalUI(this); additonalUi.installUI(c); mThumbTrackListener = createMThumbTrackListener((JSlider) c); super.installUI(c); } public void uninstallUI(JComponent c) { super.uninstallUI(c); additonalUi.uninstallUI(c); additonalUi = null; mThumbTrackListener = null; } protected MouseInputAdapter createMThumbTrackListener( JSlider slider ) { return additonalUi.trackListener; } protected TrackListener createTrackListener( JSlider slider ) { return null; } protected ChangeListener createChangeListener( JSlider slider ) { return additonalUi.changeHandler; } protected void installListeners( JSlider slider ) { slider.addMouseListener(mThumbTrackListener); slider.addMouseMotionListener(mThumbTrackListener); slider.addFocusListener(focusListener); slider.addComponentListener(componentListener); slider.addPropertyChangeListener( propertyChangeListener ); slider.getModel().addChangeListener(changeListener); } protected void uninstallListeners( JSlider slider ) { slider.removeMouseListener(mThumbTrackListener); slider.removeMouseMotionListener(mThumbTrackListener); slider.removeFocusListener(focusListener); slider.removeComponentListener(componentListener); slider.removePropertyChangeListener( propertyChangeListener ); slider.getModel().removeChangeListener(changeListener); } protected void calculateGeometry() { super.calculateGeometry(); additonalUi.calculateThumbsSize(); additonalUi.calculateThumbsLocation(); } protected void calculateThumbLocation() {} public void paint( Graphics g, JComponent c ) { Rectangle clip = g.getClipBounds(); thumbRect = zeroRect; super.paint( g, c ); int thumbNum = additonalUi.getThumbNum(); Rectangle[] thumbRects = additonalUi.getThumbRects(); for (int i=thumbNum-1; 0<=i; i--) { if ( clip.intersects( thumbRects[i] ) ) { thumbRect = thumbRects[i]; paintThumb( g ); } } } protected void installKeyboardActions( JSlider slider ) {} protected void uninstallKeyboardActions( JSlider slider ) {} public void scrollByBlock(int direction) {} public void scrollByUnit(int direction) {} /** MThumbSliderAdditional */ public Rectangle getTrackRect() { return trackRect; } public Dimension getThumbSize() { return super.getThumbSize(); } public int xPositionForValue(int value) { return super.xPositionForValue( value); } public int yPositionForValue(int value) { return super.yPositionForValue( value); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -