Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过为java LabelledSider的变量赋值来更新其默认值?_Java_Swing_User Interface_Slider - Fatal编程技术网

如何通过为java LabelledSider的变量赋值来更新其默认值?

如何通过为java LabelledSider的变量赋值来更新其默认值?,java,swing,user-interface,slider,Java,Swing,User Interface,Slider,我以前问过这个问题,但我似乎无法编辑它,但现在我对如何做有了更多的想法,但它不起作用 我初始化了一个LabelledSlider,并将默认值设置为int speedValue,该值在构造函数中分配给1 final LabelledSlider speed = new LabelledSlider("Sim speed", 1, 7, speedValue); 加载程序时,滑块为1,但当我调用动作侦听器加载(将值5指定给speedValue)时,滑块仍为1,并且在运行程序时不会增加 load

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

我初始化了一个LabelledSlider,并将默认值设置为int speedValue,该值在构造函数中分配给1

final   LabelledSlider speed = new LabelledSlider("Sim speed", 1, 7, speedValue);
加载程序时,滑块为1,但当我调用动作侦听器加载(将值5指定给speedValue)时,滑块仍为1,并且在运行程序时不会增加

loadButton.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            speedValue = 1;
        }
    });
有人能解释为什么什么都没有发生,并可能提供一个解决方案吗?我还有保存滑块值的动作监听器,效果非常好


感谢

您的代码展示了神奇的思维,您假设当您更改用于设置JSlider初始状态的基本变量speedValue的值时,JSlider的状态将神奇地改变。Java不是这样工作的,如果您想更改JSlider的状态,您必须对其调用一个显式执行此操作的方法:

slider.setValue(...);
因此,无论您希望在哪里更改JSlider的值,都需要在适当的JSlider引用上调用此方法


顺便说一下,您想删除另一个重复的问题。

是的,我已经删除了。奇怪的是,我以前不能。无论如何,关于解决方案,即使LabelledSlider中存储了一个JSlider字段,它也不允许我访问该字段,除非我将其更改为默认值(当前为非私有值)或get方法,因此如果我只是这样做,它应该可以工作。谢谢@Sanjax:然后使用公共方法允许外部类设置对象的滑块值。