@ -91,6 +91,9 @@ public abstract class ItemEditableComboBoxPanel extends JPanel {
refreshWorker . cancel ( true ) ;
refreshWorker . cancel ( true ) ;
}
}
// 记录原来选中的Item,重新加载后需要再次选中
Object lastSelectedItem = itemComboBox . getSelectedItem ( ) ;
DefaultComboBoxModel model = ( ( DefaultComboBoxModel ) itemComboBox . getModel ( ) ) ;
DefaultComboBoxModel model = ( ( DefaultComboBoxModel ) itemComboBox . getModel ( ) ) ;
model . removeAllElements ( ) ;
model . removeAllElements ( ) ;
@ -98,6 +101,12 @@ public abstract class ItemEditableComboBoxPanel extends JPanel {
model . addElement ( EMPTY ) ;
model . addElement ( EMPTY ) ;
model . addElement ( PENDING ) ;
model . addElement ( PENDING ) ;
// 存在两种场景之前只考虑了填充场景 有populate会填充下 把这边的填充逻辑删了 所以没有问题
// 如果是纯通过刷新按钮 没有populate 需要手动设置下上次选中的内容
if ( lastSelectedItem ! = null ) {
model . setSelectedItem ( lastSelectedItem ) ;
}
refreshWorker = new SwingWorker < Iterator < String > , Void > ( ) {
refreshWorker = new SwingWorker < Iterator < String > , Void > ( ) {
@Override
@Override
protected Iterator < String > doInBackground ( ) throws Exception {
protected Iterator < String > doInBackground ( ) throws Exception {