JSlider 抛出 illegalArgument exception:invalid 范围属性

JSlider throwing illegalArgument exception:invalid range properties

我有一个带有 JSlider 和 3 个 jtextfields 的简单面板。 我正在使用构造函数 JSlider(int min, int max, int value) 构造一个 JSlider 像这样:

public class Slide extends JFrame{

    JSlider slider=new JSlider(100,200,50);//here lies the problem
    JTextField maxVal=new JTextField(10);
    JTextField minVal=new JTextField(10);
    JTextField curVal=new JTextField(10);
    public Slide(){


        JPanel panel=new JPanel();
        slider.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent arg0) {
                minVal.setText(slider.getMinimum()+"");
                maxVal.setText(slider.getMaximum()+"");
                curVal.setText(slider.getValue()+"");

            }
        });
        panel.setLayout(new MigLayout("", "[][][][]", "[][][][]"));



        panel.add(slider, "cell 0 0,alignx left,aligny top");
        JLabel label = new JLabel("Min val");
        panel.add(label,"cell 0 2");
        panel.add(minVal, "cell 3 2");
        this.setContentPane(panel);
        JLabel label_1 = new JLabel("Max val:");
        panel.add(maxVal,"cell 3 3");
        panel.add(label_1, "cell 0 3");
        panel.add(new JLabel("Cur value:"), "cell 0 4");
        panel.add((curVal),"cell 3 4");
        this.setSize(400, 400);
        this.setVisible(true);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String args[]){
        new Slide();
    }
}

问题是,当我尝试 运行 这个程序时,我得到一个非法参数异常,但如果我删除第三个参数,一切正常。

Exception in thread "main" java.lang.IllegalArgumentException: invalid range properties
    at javax.swing.DefaultBoundedRangeModel.<init>(DefaultBoundedRangeModel.java:102)
    at javax.swing.JSlider.<init>(JSlider.java:274)
    at javax.swing.JSlider.<init>(JSlider.java:241)
    at JSlider.Slide.<init>(Slide.java:20)
    at JSlider.Slide.main(Slide.java:54)
Java Result: 1

知道为什么会这样吗?

来自 Java 文档:

JSlider(int min, int max, int value)

使用指定的最小值、最大值和值创建水平滑块。

保存滑块数据的 BoundedRangeModel 可处理因不正确设置滑块的最小值、初始值和最大值而引起的任何问题。有关详细信息,请参阅 BoundedRangeModel 文档。

BoundedRangeModel

minimum <= value <= value+extent <= maximum

参数应满足上述关系。在您的情况下,100 (min) 大于 50 (value)。