我有一个我正在循环的Map.Entry<String,Integer>
s列表,并且每个列表都有一个表示该特定条目的JLabel
/JSpinner
。Java/Swing:在stateChange上更新数据
我该怎么做才能让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#的dataSource
,直接绑定对象到微调?或者我该如何做这项工作?
难道你不能进入最后?像(最终Map.Entry条目:graph.getData())....? –
2010-09-23 03:51:38