我有数组JSpinners,但是我听不到。

这个没有用,因为Java要最终变量。当我将spin4 [j]更改为spin4 [0]

 spin4[j].addChangeListener(
                                new ChangeListener(){
                                    public void stateChanged(ChangeEvent e) {
                                Object o =spin4[j].getValue();
                                Number n = (Number) o;
                                pocatek = n.intValue();
                                };
                            });

最佳答案

然后将必要的变量定为final,或将其复制为final。我猜您感兴趣的变量是j,而j是一个不能声明为final的循环索引。如果是这样,则创建一个最终的复制变量,该变量复制j的值并在内部类内部使用。例如,类似...

for (int j = 0; j < spin4.length; j++) {
    final int innerJ = j;
    spin4[j] = new JSpinner(/* model here */); // ????? do you have or need this
    spin4[j].addChangeListener(new ChangeListener(){
        @Override
        public void stateChanged(ChangeEvent e) {
            Object o =spin4[innerJ].getValue();
            Number n = (Number) o;
            pocatek = n.intValue();
        };
    });
}

07-26 09:28