Comment rendre visible uniquement les extrémités des Jsliders
Question
Disons que j'ai un jslider horizoutal de 0 à 100. Ce que je veux faire est de: - fixer un espacement majeur à 10 et mineurs à 5 mais les chiffres ne devraient pas être visibles - Les valeurs des extrémités (0 et 100) doivent être visibles - Lorsque je déplace la flèche de positionnement, je veux avoir une étiquette à côté du curseur de la souris qui me dit la valeur réelle.
La solution
Définir un espacement majeur à 10 et mineurs à 5 mais les chiffres ne devraient pas être visible - les valeurs des extrémités (0 et 100) doivent être visibles
Ceci peut être facilement effectué en utilisant certaines méthodes de Jslider,
JSlider slider = new JSlider(JSlider.VERTICAL, 0, 100, 0); slider.setMinorTickSpacing(5); slider.setMajorTickSpacing(10); slider.setPaintTicks(true); Hashtable<Integer, JLabel> labels = new Hashtable<Integer, JLabel>(); labels.put(0, new JLabel("0")); labels.put(100, new JLabel("100")); slider.setLabelTable(labels); slider.setPaintLabels(true);
Quand je déplace la flèche de positionnement, je veux avoir une étiquette à côté de la curseur de la souris qui me dit la valeur réelle.
Vous pouvez obtenir une chose similaire en utilisant Sliderui du client et en remplaçant sa méthode de peinture.Ce n'est pas exactement que vous voulez, mais vous pouvez essayer ceci:
slider.setUI(new BasicSliderUI(slider) { public void paintThumb(Graphics g) { super.paintThumb(g); g.setColor(Color.RED); g.drawString(slider.getValue() + "", thumbRect.x, thumbRect.y + thumbRect.height); } });