我在JTable中有一列與業務對象列表上的基礎布爾屬性綁定。我也有一個組合框,它應該選擇哪些項目應該被選中。我基本上都添加以下代碼作爲一個處理程序的組合框:Java Swing - 通知GUI有關對模型的更改
macroCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JComboBox comboBox = (JComboBox) e.getSource();
Predicate filter = (Predicate) comboBox.getSelectedItem();
for(SelectableKey key : tableEntries){
key.setSelected(filter.evaluate(key));
}
}
});
我也有我想基於該值來改變一些其他控件。此時,表格中只有少數幾個單元格會改變其狀態以被選中/取消選擇。只有當我點擊該行或選擇多行時,UI纔會自行更新。我需要做出告訴GUI重繪的處理函數嗎? ALos,如果我修改JTable以外的其他控件,我會如何告訴他們改變他們的狀態?
感謝
因此,在第二種方法中,您需要將TableModel作爲偵聽器添加到支持它的每個業務對象,並且每當它們發生更改時,都會引發該模型挑選的事件? – Bober02 2012-08-07 14:08:23
@ Bober02知道表模型的表模型或偵聽器(例如表模型中的匿名類) – Robin 2012-08-07 14:45:20