Это же у нас тогда диаграмма состояний получается... Не представляю как это в ДП нариовать.
И почему мы не может воспринимать пользователя как часть системы?
У нас система с пользоватем и калькулятором.
Ну, Вы батенька, загнули. Пользователь часть системы.
Main - JFrame - JPanel - JTextField
JTextField берет от пользователя число, отдает в JPanel,
JPanel дает atan, atan возвращает результат к jPanel
JPanel устанавливает число в JTextField.
Ну и прекрасно.
Пользователь вводит число - куда в поле JTextField
Пользователь жмет команду Рассчитать
Возможно Atan посылает запрос на получение значения поля getValue и получает его
Вычисляет арктангес
Отсылает значение в JtextField - т.е. setValue
Все.
Все остальное - инициализация Main, Jframe и т.п. производится до начала варианта использования
Ну а далее цикл. JTextField ждет от пользователя нового текста... и т.д.
Т.е. JTextField - интерфейсная часть, ATAN контроллер вычисления - других то функций у вас нет, сущностных клаасов как таковых нет, результат или исходное значение хранится в JTextField.
Мне не понятно почему ATAN получает значение у JPanel, почему он не может обратится непосредственно к источнику информации JTEXTField. Типичный шаблон Information Expert
Да я бы добавил класс JButton какой нить, правда в Вашем случае и так однозначно, хотя имеет смысл разделить управление от представления
Это будет хорошо тем, что если вдруг Вы заходите реализовать еще функцию, то просто добавите метод к классу контроллеру, а на еще одну кнопку повесите событие онклик с передачей индекса или имени кнопки.
Таким образом ваш калькулятор легко модифицируется