KidsLovePC Contact Us
  Home   PHP  Graphics ASP  JavaScript   HTML  JAVA   Swing   Webtip  Lyric  Free sheet music  Ringtones

Best books about JAVA programming:

JAVA JSlide Color

The following code adds color to JSlide. User may customize the color showing on JSlide. This example has following Java files:



import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;

public class MetalMThumbSliderUI extends MetalSliderUI
implements MThumbSliderAdditional {

MThumbSliderAdditionalUI additonalUi;
MouseInputAdapter mThumbTrackListener;

public static ComponentUI createUI(JComponent c) {
return new MetalMThumbSliderUI((JSlider)c);
}


public MetalMThumbSliderUI() {
//super(null);
}

public MetalMThumbSliderUI(JSlider b) {
//super(null);
}


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() {}




Icon thumbRenderer;

public void paint( Graphics g, JComponent c ) {
Rectangle clip = g.getClipBounds();
Rectangle[] thumbRects = additonalUi.getThumbRects();
thumbRect = thumbRects[0];
int thumbNum = additonalUi.getThumbNum();

if ( slider.getPaintTrack() && clip.intersects( trackRect ) ) {
boolean filledSlider_tmp = filledSlider;
filledSlider = false;
paintTrack( g );
filledSlider = filledSlider_tmp;

if ( filledSlider ) {
g.translate( trackRect.x, trackRect.y );

Point t1 = new Point(0,0);
Point t2 = new Point(0,0);
Rectangle maxThumbRect = new Rectangle(thumbRect);
thumbRect = maxThumbRect;

if ( slider.getOrientation() == JSlider.HORIZONTAL ) {
t2.y = (trackRect.height - 1) - getThumbOverhang();
t1.y = t2.y - (getTrackWidth() - 1);
t2.x = trackRect.width - 1;
int maxPosition = xPositionForValue(slider.getMaximum());
thumbRect.x = maxPosition - (thumbRect.width / 2) -2;
thumbRect.y = trackRect.y;
}
else {
t1.x = (trackRect.width - getThumbOverhang()) - getTrackWidth();
t2.x = (trackRect.width - getThumbOverhang()) - 1;
t2.y = trackRect.height - 1;
int maxPosition = yPositionForValue(slider.getMaximum());
thumbRect.x = trackRect.x;
thumbRect.y = maxPosition - (thumbRect.height / 2) -2;
}

Color fillColor = ((MThumbSlider)slider).getTrackFillColor();
if (fillColor == null) {
fillColor = MetalLookAndFeel.getControlShadow();
}
fillTrack( g, t1, t2, fillColor);

for (int i=thumbNum-1; 0<=i; i--) {
thumbRect = thumbRects[i];
fillColor = ((MThumbSlider)slider).getFillColorAt(i);
if (fillColor == null) {
fillColor = MetalLookAndFeel.getControlShadow();
}
fillTrack( g, t1, t2, fillColor);
}

g.translate( -trackRect.x, -trackRect.y );
}
}
if ( slider.getPaintTicks() && clip.intersects( tickRect ) ) {
paintTicks( g );
}
if ( slider.getPaintLabels() && clip.intersects( labelRect ) ) {
paintLabels( g );
}

for (int i=thumbNum-1; 0<=i; i--) {
if ( clip.intersects( thumbRects[i] ) ) {
thumbRect = thumbRects[i];
thumbRenderer = ((MThumbSlider)slider).getThumbRendererAt(i);
if (thumbRenderer == null) {
if ( slider.getOrientation() == JSlider.HORIZONTAL ) {
thumbRenderer = horizThumbIcon;
} else {
thumbRenderer = vertThumbIcon;
}
}
paintThumb( g );
}
}
}


public void paintThumb(Graphics g) {
thumbRenderer.paintIcon( slider, g, thumbRect.x, thumbRect.y );
}

public void fillTrack(Graphics g, Point t1, Point t2, Color fillColor) {
// t1-------------------
// | |
// --------------------t2
int middleOfThumb = 0;

if ( slider.getOrientation() == JSlider.HORIZONTAL ) {
middleOfThumb = thumbRect.x + (thumbRect.width / 2) - trackRect.x;
if ( slider.isEnabled() ) {
g.setColor(fillColor);
g.fillRect( t1.x+2,
t1.y+2,
middleOfThumb - t1.x -1,
t2.y - t1.y -3);
g.setColor(fillColor.brighter());
g.drawLine( t1.x+1, t1.y+1, middleOfThumb, t1.y+1 );
g.drawLine( t1.x+1, t1.y+1, t1.x+1, t2.y-2 );
} else {
g.setColor(fillColor);
g.fillRect( t1.x,
t1.y,
middleOfThumb - t1.x +2,
t2.y - t1.y );
}
}
else {
middleOfThumb = thumbRect.y + (thumbRect.height / 2) - trackRect.y;
if ( slider.isEnabled() ) {
g.setColor( slider.getBackground() );
g.drawLine( t1.x+1, middleOfThumb, t2.x-2, middleOfThumb );
g.drawLine( t1.x+1, middleOfThumb, t1.x+1, t2.y - 2 );
g.setColor( fillColor );
g.fillRect( t1.x + 2,
middleOfThumb + 1,
t2.x - t1.x -3,
t2.y-2 - middleOfThumb);
} else {
g.setColor( fillColor );
g.fillRect( t1.x,
middleOfThumb +2,
t2.x-1 - t1.x,
t2.y - t1.y );
}
}
}


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);
}

}

 


Sponsored link
Java JTabbedPane
JTabbedPane Preview List
Java JComboBox
JComboBox Preview List
Java JTooltip
JTooltip Preview List
Java JList
JList Preview List
Java JTree
JTree Preview List 1
JTree Preview List 2
JAVA JTable
JTable Preview List 1
JTable Preview List 2
JTable Preview List 3
JTable Preview List 4
JTable Preview List 5
JTable Preview List 6
JTable Preview List 7
JAVA Jslide
JSlide Preview List

 

 

Best books about JAVA programming from Amazon
Professional Java, JDK 5 Edition (Paperback Simply Java Programming: An Application-Driven Tutorial Approach (Paperback) Effective Java Programming Language Guide (Paperback) Head First Java, 2nd Edition (Paperback) Java : An Introduction to Problem Solving and Programming (4th Edition)

 

Printer Inkjet A Z lyricsLearn ChineseHome|PHP|Swing|HTML|JavaScript|ASP|JAVA|Forum|WebTip|Contact Us
Copyright © kidslovepc.com All rights reserved(new). Privacy|Copyright
designed by info@kidslovepc.com

Please help us cover the web site maintenance fee.
barcode scanner Thermal Printer credit card machine bar code printer