|
|
|
@ -104,7 +104,14 @@ public abstract class ItemEditableComboBoxPanel extends JPanel {
|
|
|
|
|
// 存在两种场景之前只考虑了填充场景 有populate会填充下 把这边的填充逻辑删了 所以没有问题
|
|
|
|
|
// 如果是纯通过刷新按钮 没有populate 需要手动设置下上次选中的内容
|
|
|
|
|
if (lastSelectedItem != null) { |
|
|
|
|
ActionListener[] actionListeners = itemComboBox.getActionListeners(); |
|
|
|
|
for (ActionListener actionListener : actionListeners) { |
|
|
|
|
itemComboBox.removeActionListener(actionListener); |
|
|
|
|
} |
|
|
|
|
model.setSelectedItem(lastSelectedItem); |
|
|
|
|
for (ActionListener actionListener : actionListeners) { |
|
|
|
|
itemComboBox.addActionListener(actionListener); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
refreshWorker = new SwingWorker<Iterator<String>, Void>() { |
|
|
|
@ -121,7 +128,9 @@ public abstract class ItemEditableComboBoxPanel extends JPanel {
|
|
|
|
|
while(itemIt.hasNext()) { |
|
|
|
|
model.addElement(itemIt.next()); |
|
|
|
|
} |
|
|
|
|
// 重置下拉框高度 值一样时不会生效 所以先加再减下
|
|
|
|
|
itemComboBox.setMaximumRowCount(itemComboBox.getMaximumRowCount() + 1); |
|
|
|
|
itemComboBox.setMaximumRowCount(itemComboBox.getMaximumRowCount() - 1); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
if (!(e instanceof CancellationException)) { |
|
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
|