public void actionPerformed(ActionEvent event) { final Object item = fieldMortgageChoices.getSelectedItem(); if (item instanceof Mortgage) { final Mortgage mortgageTerms = (Mortgage) item; // update the fields, but tell the document listener to // not react to those changes since we don't want the // combo box to then be changed in turn ignoreDocumentChange = true; fieldRate.setText(FMT_RATE.format(mortgageTerms.getRate())); fieldTerm.setText(FMT_TERM.format(mortgageTerms.getTerm())); ignoreDocumentChange = false; } }