如何通过将值赋给其变量来更新java LabelledSlider默认值



我以前问过这个问题,但我似乎无法编辑它,但现在我对如何做到这一点有了更多的想法,但它不起作用。

我已经初始化了一个LabelledSlider,并使其默认值为int speedValue,该值在构造函数中被赋值为1。

final   LabelledSlider speed = new LabelledSlider("Sim speed", 1, 7, speedValue);

加载程序时,滑块为1,但是当我调用动作监听器load时,它将值5赋给speedValue,滑块仍然保持1,并且在我运行程序时不增加。

loadButton.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            speedValue = 1;
        }
    });

谁能解释为什么没有发生,并可能提供一个解决方案?我也有动作监听器保存滑块值,工作得很好。

谢谢

您的代码显示了神奇的思维,您假设当您更改用于设置JSlider初始状态的原始变量speedValue的值时,JSlider的状态将神奇地发生变化。Java不是这样工作的,如果你想改变JSlider的状态,你将不得不在它上面调用一个显式执行以下操作的方法:

slider.setValue(...);

因此,无论您希望在何处更改JSlider的值,您都需要在适当的JSlider引用上调用此方法。

顺便说一下,你会想要删除其他重复的问题。

相关内容

  • 没有找到相关文章