2010-10-26 16 views
1

J'ai besoin de personnaliser l'aspect et la sensation de jslider en swing en java. J'ai une image de potard de jslider. J'ai besoin de mettre cette image de bouton sur le bouton de jslider que nous avons utilisé pour sélectionner une valeur de la gamme donnée. Je ne veux pas utiliser l'image de bouton par défaut de jslider. Au lieu de cela, je veux placer l'image de mon propre bouton dessus.comment mettre l'image sur le potard de jslilder de java?

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

Merci Jyoti

+0

OP est mieux demandé: http://stackoverflow.com/questions/4021191/how-to-hide-the -knob-of-jslider –

Répondre

2

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

     } 

    } 

} 
2

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

+0

merci pour la réponse. BUt maintenant son montrant deux boutons. une mine et la précédente. Et mon bouton d'image ne bouge pas aussi. pourriez-vous s'il vous plaît dites-moi comment faire cela? – Jyoti

+1

Pour une meilleure aide plus tôt, postez un SSCCE (http://pscode.org/sscce.html) de votre code actuel. Étant donné qu'il utilise des images, soit hot-link à un sur le net, ou le générer dans le code. –

0

HI Tous,

Merci beaucoup pour les réponses. J'ai la solution pour ma question. C'est très simple.

Je l'ai fait quelque chose comme ceci:

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

Merci Jyoti

question plus tard de