private void refreshDialog() { String nr = currentAccountNumber(); accountcombo.removeAllItems(); if (bank != null) { try { Set<String> s = bank.getAccountNumbers(); ArrayList<String> accnumbers = new ArrayList<String>(s); Collections.sort(accnumbers); ignoreItemChanges = true; for (String item : accnumbers) { accountcombo.addItem(item); if (item.equals(nr)) accountcombo.setSelectedItem(item); } ignoreItemChanges = false; // clean up local accounts map for (String key : s) { if (!accounts.containsKey(key)) { accounts.put(key, bank.getAccount(key)); } } Iterator<String> it = accounts.keySet().iterator(); while (it.hasNext()) { if (!s.contains(it.next())) it.remove(); } int size = s.size(); btn_deposit.setEnabled(size > 0); btn_withdraw.setEnabled(size > 0); btn_transfer.setEnabled(size > 1); item_close.setEnabled(size > 0); for (BankTest t : tests) { JMenuItem m = testMenuItems.get(t); m.setEnabled(t.isEnabled(size)); } updateCustomerInfo(); } catch (Exception e) { error(e); } } }