0

I have array JSpinners, but I can“t listening.

This one no working, because Java want final variable. When I change spin4[j] to spin4[0] <- it is working. But i need array with JSpinners. Help please.

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

1 Answers1

2

Then either make the necessary variable final, or make a copy that is final. I'm guessing your variable of interest is j, and that j is a loop index which can't be declared final. If so, then create a final copy variable that copies j's value and is used inside of the inner class. For example, something like,...

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();       
        };
    });
}
Hovercraft Full Of Eels
  • 283,665
  • 25
  • 256
  • 373