У меня есть список Map.Entry<String,Integer>
s, по которым я зацикливаюсь, и для каждого из них создается JLabel
/ JSpinner
, представляющий эту конкретную запись.
Как сделать так, чтобы при срабатывании ChangeListener
на JSpinner
обновлялась эта запись, отражая новое значение?
Мой код выглядит как
for (Map.Entry<String,Integer> entry : graph.getData()) {
SpinnerNumberModel model = new SpinnerNumberModel(
entry.getValue(),(Integer)0,(Integer)100,(Integer)5);
JSpinner spinner = new JSpinner(model);
JLabel label = new JLabel(entry.getKey());
spinner.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
entry.setValue((Integer)((JSpinner)e.getSource()).getValue());
}
});
// more stuff
}
Однако это не работает, потому что запись должна быть конечной или на уровне объекта, и это не так.
Есть ли более простой способ, например, C # 1015 *, который напрямую связывает объект с вращателем? Или как я могу сделать эту работу?