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.

Était-ce utile?

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

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