ratingS = new JSlider(1, 5, 3);
ratingS.setMajorTickSpacing(1);
ratingS.setPaintLabels(true);
int vote;
class SliderMoved implements ChangeListener {
public void s
Well, the standard trick is to use an int array of length one. Make the var final and write to var[0]
. It is very important to make sure you don't create a data race. Using your code as an example:
final int[] vote = {0};
class SliderMoved implements ChangeListener {
public void stateChanged(ChangeEvent e) {
vote[0] = ratingS.getValue();
}
}
Since all this will be happenenig on the EDT, including the callback invocation, you should be safe. You should also consider using the anonymous class:
ratingS.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) { vote[0] = ratingS.getValue(); }
});