Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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 如何将JSlider SELECT值设置为全局变量?_Java_Swing_Global Variables_Return_Jslider - Fatal编程技术网

Java 如何将JSlider SELECT值设置为全局变量?

Java 如何将JSlider SELECT值设置为全局变量?,java,swing,global-variables,return,jslider,Java,Swing,Global Variables,Return,Jslider,有人知道我如何在JSlider的事件处理程序中发送所选值,stateChanged,并将其设置为全局变量吗 比如说 public class Slider extends JPanel { public JSlider slider; public UserFrame frame; public double[] priceRange; public static void main(String[] args) throws ClassNotFoundExc

有人知道我如何在JSlider的事件处理程序中发送所选值,
stateChanged
,并将其设置为全局变量吗

比如说

public class Slider extends JPanel {

    public JSlider slider;
    public UserFrame frame;
    public double[] priceRange;

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        new Slider();
    }

    public Slider() throws ClassNotFoundException, SQLException {
        slider = new JSlider();
        priceRange = new double[2];

        slider.setBorder(BorderFactory.createTitledBorder("Maximum Price in SEK"));

    /*
     * The minimum and maximum values are queried from the database. Those
     * values are then rounded up (maximum) to the nearest 10 SEK.
     * For example, if the minimum is 67 SEK and the maximum 95 SEK, then
     * the displayed range is [70, 100].
     */
        int min = (getMinimumPrice() / 10) * 10 + 10;
        int max = (getMaximumPrice() / 10) * 10 + 10;

        slider.setMajorTickSpacing(10);
        slider.setMinorTickSpacing(5);
        slider.setMinimum(min);
        slider.setMaximum(max);
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
        add(slider);
    }

    public void stateChanged(ChangeEvent e) {
        JSlider source = (JSlider)e.getSource();
        if (!source.getValueIsAdjusting()) {
            slider.getModel().setValue(slider.getModel().getValue());
            priceRange[0] = slider.getModel().getValue();
        }
    }
}
。。。依此类推,忽略方法
getMinimum
getMaximum
,它们只是检索我数据库中的最高值和最低值,但假设当用户释放JSlider旋钮时,我只想将其设置为
priceRange[0]
。我怎样才能做到这一点?我试着创建一个模型,并设置每次状态发生变化时,我也会在主代码集中的actionListener中进行外部设置,例如

priceRange[0] = slider.getModel().getValue();
然后把结果打印出来,得到我设定的最小值

我真的很感谢你的进一步建议

祝你假期愉快!:)

祝你一切顺利,
马库斯

只需删除以下几行:

slider.getModel().setValue(slider.getModel().getValue());
priceRange[0] = slider.getModel().getValue();
并插入以下内容:

priceRange[0] = (double)slider.getValue();
祝你好运

另外,您在哪里实现了
ChangeListener
接口