我有一個我正在循環的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