cómo poner una imagen en la perilla de jslilder de oscilación en java?
-
26-09-2019 - |
Pregunta
Me necesidad de personalizar la apariencia de JSlider en columpio en java. Tengo una imagen de nuez de JSlider. Tengo que poner esta imagen del botón de mando más de JSlider que usamos para seleccionar un valor de la gama dada. No quiero usar la imagen por defecto de mando JSlider. En lugar quiero colocar la imagen de mi propio mando sobre ella.
Por favor, ayúdame, ¿cómo puedo hacer esto?
Gracias Jyoti
Solución
En este momento, un enfoque equivocado. Intentar algo como esto:
package java_sandbox;
import javax.imageio.ImageIO;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
import javax.swing.plaf.basic.BasicSliderUI;
import java.awt.*;
import java.io.File;
import java.io.IOException;
public class CustomSliderKnob {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new CustomSliderKnob();
}
});
}
public CustomSliderKnob() {
JFrame f = new JFrame( "Swing Slider Knob" );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Container p = f.getContentPane();
JSlider s = new JSlider();
s.setUI( new mySliderUI( s ) );
p.add( s );
f.pack();
f.setVisible(true);
}
private class mySliderUI extends BasicSliderUI {
Image knobImage;
public mySliderUI( JSlider aSlider ) {
super( aSlider );
try {
this.knobImage = ImageIO.read( new File( "d:\\d.jpg") );
} catch ( IOException e ) {
e.printStackTrace();
}
}
public void paintThumb(Graphics g) {
g.drawImage( this.knobImage, thumbRect.x, thumbRect.y, 8, 8, null );
}
}
}
Otros consejos
Subclase JSlider, anulación 'paintComponent ()' y hacer una llamada a la aplicación de los súper luego dibujar su imagen en el lugar apropiado.
HI All,
Muchas gracias por las respuestas. Tengo la solución para mi pregunta. Es muy simple.
he hecho algo como esto:
Icon icon = new ImageIcon("slider.png");
UIDefaults defaults = UIManager.getDefaults();
defaults.put("Slider.horizontalThumbIcon", icon);
Gracias Jyoti