Change JLabel value from JSlider value

I have one JPanel that contains JSlider and JLabel. I want to configure it so that when the JSlider value is changed by the user, this new value is reflected in JLabel.

I understand that I can run ChangeEvents using Slider, but I don’t know how to add ChangeListener to JLabel. Here is a snippet of my code.

scaleSlider.addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent event)
    {
        int currentTime = ((JSlider)event.getSource()).getValue();
        doSomething(currentTime);
        fireStateChanged(event);
    }

JLabel timeValue = new JLabel("Time: " + scaleSlider.getValue());
timeValue.add??? 

(I do not know what to do now to reflect the changes in the slider)

Am I going in the right direction with this? Thanks in advance for your help.

+3
source share
3 answers

You are not listening to ChangeEvents in JLabel. You listen to ChangeEvents on JSlider, and then in the stateChanged () method, which you just use

label.setText("Time: " + scaleSlider.getValue());

ChangeLisetner.

+4

, .

, , JLabel.

, doSomething(int) :

label.setText(currentTime + "");
+2

JLabel. JLabel , , JLabel JSlider, :

public class Test() {
    private JLabel label;

    private void setup() {
        label = new JLabel();
        JSlider scaleSlider = new JSlider();
        scaleSlider.addChangeListener(new ChangeListener() {

            public void stateChanged(ChangeEvent event) {
                int currentTime = ((JSlider)event.getSource()).getValue();
                label.setText(currentTime);
            }
        }
    }
}

, ChangeListener, scaleSlider.

+2

Source: https://habr.com/ru/post/1714518/


All Articles