Frage

Ich brauche das Aussehen anpassen und von JSlider in Swing in Java fühlen. Ich habe ein Bild von Knauf JSlider. Ich brauche dieses Bild des Knopfes über JSlider des Knopf zu setzen, die wir verwenden, um einen Wert aus dem angegebenen Bereich zu wählen. Ich möchte nicht das Standard-Knopf Bild von JSlider verwenden. Stattdessen möchte ich darüber meine eigenen Knopf Bild setzen.

Bitte helfen Sie mir, wie kann ich das tun?

Danke Jyoti

War es hilfreich?

Lösung

Sorry, falscher Ansatz. Probieren Sie etwas wie folgt aus:

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

        }

    }

}

Andere Tipps

Subclass JSlider, überschreiben ‚paintcomponent ()‘ und einen Anruf tätigen, um die Umsetzung des Super dann an der entsprechenden Stelle Ihr Bild zeichnen.

HALLO Alle,

Vielen Dank für die Antworten. Ich habe die Lösung für meine Frage. Es ist sehr einfach.

Ich habe etwas getan:

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

Danke Jyoti

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top