Domanda

Diciamo che ho un jslider orizzo da 0 a 100. Quello che voglio fare è: - Impostare una spaziatura importante su 10 e minori a 5 ma le cifre non dovrebbero essere visibili - i valori delle estremità (0 e 100) dovrebbero essere visibili - Quando muovo la freccia di posizionamento, voglio avere un'etichetta accanto al cursore del mouse che mi dice il valore effettivo.

È stato utile?

Soluzione

Impostare la spaziatura importante su 10 e minori a 5 ma le cifre non dovrebbero essere visibili: i valori delle estremità (0 e 100) dovrebbero essere visibili

Questo può essere facilmente fatto usando alcuni metodi di jslider come,

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

Quando muovo la freccia di posizionamento, voglio avere un'etichetta accanto al cursore del mouse che mi dice il valore effettivo.

Puoi ottenere una cosa simile utilizzando Sliderui del cliente e prevalere sul metodo Paintthumb. Questo non è esattamente che vuoi ma puoi provare questo:

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);
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top