java - IllegalArgumentException:创建 SpinnerListModel 时序列元素无效

标签 java swing list illegalargumentexception jspinner

我正在尝试创建一个带有一组值的 JSpinner,这些值随着它们的减小而步长越来越小,因此我创建了一个函数来生成这些值,并将 100 个值添加到列表中,然后尝试使用以下命令创建一个 SpinnerListModel列出它的来源。这会产生以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: invalid sequence element
    at javax.swing.SpinnerListModel.setValue(SpinnerListModel.java:185)
    at com.fractalexplorer.main.RangeSelector.setValue(RangeSelector.java:106)

相关代码如下:

SpinnerListModel spinnerModel = new SpinnerListModel(constructSpinnerModelSource());

public List<Double> constructSpinnerModelSource()
{
    List<Double> list = new ArrayList<Double>();
    int steps = 100;

    for(int i = 0; i <= steps; i++)
        list.add(getStep(i));

    return list;
}

public Double getStep(double x)
{
    return 2.25 * Math.pow(0.95, x);
}

当前值范围为 2 到 0.013321190745751494,以下是最后 12 个值:

0.02341981115445541, 0.022248820596732638, 0.021136379566896003, 
0.020079560588551204, 0.01907558255912364, 0.018121803431167458,    
0.017215713259609085, 0.01635492759662863, 0.015537181216797197, 
0.014760322155957337, 0.01402230604815947, 0.013321190745751494

最佳答案

如果您尝试设置不属于 JSpinner 值列表的值,则会引发此异常。

示例:

String[] values = {"one", "two", "three", "four"};
SpinnerModel model = new SpinnerListModel(values);
model.setValue("TWO"); // throws IllegalArgumentException

关于java - IllegalArgumentException:创建 SpinnerListModel 时序列元素无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28741607/

相关文章:

java - 如何将函数移动到 android studio 中的单独文件?

java - Apache Jena - 一次查询得到 3 个相同的结果

java - 如何在java中使用itext在pdf文档最后一页底部创建表格

java - 运行 JavaFX Maven 插件(修复类路径)后 javafx.application.Application 出现 NoClassFoundException

Python:如何读取文件并将某些列存储在数组中

javazic 时区格式

java - 使用 RowFilter (regexFilter) 匹配括号

java - 某种外观和感觉是否保证可用?

c - 使用此特定函数将元素附加到循环链表的末尾

python - Python 字典列表的 C++ 等价物?