diff --git a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java index bb52b766c3..0c3f9ad9c8 100644 --- a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -26,6 +26,7 @@ import com.fr.report.cell.cellattr.core.group.DSColumn; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; +import javax.swing.SwingWorker; import javax.swing.DefaultComboBoxModel; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -262,7 +263,17 @@ public class SelectedDataColumnPane extends BasicPane { tableNameComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - columnNameComboBox.setLoaded(false); + if (e.getStateChange() == ItemEvent.SELECTED) { + new SwingWorker() { + + @Override + protected Void doInBackground() throws Exception { + columnNameComboBox.loadInstant(); + return null; + } + + }.execute(); + } } }); tableNameComboBox.setPreferredSize(new Dimension(100, 20)); diff --git a/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java b/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java index 2d69c2fc83..43711b0118 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java +++ b/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java @@ -59,14 +59,11 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen } /** - * 通过调用该方法,在点击下拉框按钮之前就加载好数据 + * 通过调用该方法,在点击下拉框按钮之前就加载好数据,不需要出现loading了 */ public void loadInstant() { - if (loaded) { - return; - } - setModel(new DefaultComboBoxModel(load())); - loaded = true; + setLoaded(true); + loadList(); } @Override