【发布时间】:2012-06-14 13:13:47
【问题描述】:
我用 GlazedList eventList 创建了一个 JTable。 我搜索了 API,但不知道如何向该表添加撤消/重做可能性。我在 API 中发现了以下类:
UndoRedoSupport undoRedoSupport = new UndoRedoSupport<"what here?">("argument?");
UndoSupport undoSupport = new UndoSupport<"what to write here?">("argument?");
有人知道如何使用它吗?
private void createComponents() {
EventList<Dien> eventList = new BasicEventList<Dien>();
actionList = GenericsUtil.makeList();
table = new WebTable();
searchField = new WebTextField(60);
String[] headers = new String[]{"Code", "Name", "Number"};
String[] properties = new String[]{"Code", "Name", "Number"};
TextFilterator<Dien> dienFilterator = new TextFilterator<Dien>() {
public void getFilterStrings(List baseList, Dien dien) {
baseList.add(dien.getCode());
baseList.add(dien.getName());
baseList.add(dien.getNumber());
}
};
MatcherEditor<Dien> textMatcherEditor = new TextComponentMatcherEditor<Dien>(searchField, dienFilterator);
eventList = toolModel.getDiens();
FilterList<Dien> filterList = new FilterList<Dien>(eventList, textMatcherEditor);
TableFormat tableFormat = GlazedLists.tableFormat(properties, headers, new boolean[]{true,true,true});
model = new EventTableModel<Dien>(filterList, tableFormat);
model.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if(e.getType()==TableModelEvent.UPDATE){
if(!panel.isPendingChanges())
panel.setPendingChange(true);
}
}
});
selectionModel = new EventSelectionModel<Dien>(filterList);
table.setSelectionModel(selectionModel);
table.setModel(model);
}
【问题讨论】:
标签: java swing undo-redo glazedlists