public NewUserDialog(Frame frame, ModelingCommons communicator, String errorLabelText) { super(frame); this.communicator = communicator; this.frame = frame; initializeGUIComponents(); errorLabel.setText(errorLabelText); getRootPane().setDefaultButton(createAccountButton); for (String country : communicator.getPriorityCountries()) { countryComboBox.addItem(country, true); } countryComboBox.addItem("--------", false); for (String country : communicator.getUnpriorityCountries()) { countryComboBox.addItem(country, true); } femaleRadioButton.setSelected(true); userAgreementTextPane.setText(communicator.getNewUserAgreement()); userAgreementTextPane.setCaretPosition(0); int startYear = 1930; birthdayYearComboBox.addItem(null); for (int y = Calendar.getInstance().get(Calendar.YEAR); y >= startYear; y--) { birthdayYearComboBox.addItem(y); } birthdayMonthComboBox.addItem(null); for (Month month : Month.getMonths()) { birthdayMonthComboBox.addItem(month); } birthdayDayComboBox.addItem(null); for (int d = 1; d <= 31; d++) { birthdayDayComboBox.addItem(d); } imageFromFileRadioButton.addChangeListener( new ChangeListener() { @Override public void stateChanged(ChangeEvent changeEvent) { if (imageFromFileRadioButton.isSelected()) { fileSelector.setEnabled(true); } else { fileSelector.setEnabled(false); } } }); imageFromFileRadioButton.setSelected(true); createAccountButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { onOK(); } }); cancelButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }); loginButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { dispose(); NewUserDialog.this.communicator.promptForLogin(); } }); // call onCancel() when cross is clicked setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { onCancel(); } }); // call onCancel() on ESCAPE topLevelContainer.registerKeyboardAction( new ActionListener() { public void actionPerformed(ActionEvent e) { onCancel(); } }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); setModal(true); pack(); setLocationRelativeTo(frame); setResizable(true); }