Question

Je dois personnaliser l'apparence et la sensation de jslider bat en java. J'ai une image du bouton de jslider. Je dois mettre cette image du bouton sur le bouton de jslider que nous avons utilisé pour sélectionner une valeur dans la plage donnée. Je ne veux pas utiliser l'image du bouton par défaut de jslider. Au lieu de cela que je veux placer l'image de mon propre bouton au-dessus.

S'il vous plaît aidez-moi comment puis-je faire?

Merci Jyoti

Était-ce utile?

La solution

Désolé, mauvaise approche. Essayez quelque chose comme ceci:

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

        }

    }

}

Autres conseils

Sous JSlider, override « paintComponent () » et faire un appel à la mise en œuvre de super puis dessinez votre image à l'endroit approprié.

Bonjour à tous,

Merci beaucoup pour les réponses. Je suis la solution pour ma question. Il est très simple.

J'ai fait quelque chose comme ceci:

Icon icon = new ImageIcon("slider.png");
        UIDefaults defaults = UIManager.getDefaults();
        defaults.put("Slider.horizontalThumbIcon", icon);

Merci Jyoti

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top