package com.javaxyq.tools; import groovy.model.ValueHolder; import groovy.model.ValueModel; import groovy.swing.factory.TableModelFactory; import groovy.util.Factory; import groovy.util.FactoryBuilderSupport; import java.util.ArrayList; import java.util.Map; import javax.swing.table.TableModel; public class MyTableModelFactory extends TableModelFactory implements Factory{ public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException { if (FactoryBuilderSupport.checkValueIsType(value, name, TableModel.class)) { return value; } else if (attributes.get(name) instanceof TableModel) { return attributes.remove(name); } else { ValueModel model = (ValueModel) attributes.remove("model"); if (model == null) { Object list = attributes.remove("list"); if (list == null) { list = new ArrayList(); } model = new ValueHolder(list); } return new MyTableModel(model); } } }