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

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top