Если вы хотите получить более подробную информацию, пожалуйста, дайте мне знать или обратитесь к последним строкам этого вопроса. Я уже много читал, и я чувствую, что превращаю что-то просто в нечто сложное, и я все еще застрял здесь и там, поэтому, может быть, вы можете помочь мне в этих очень конкретных вопросах.Как правильно реализовать MVC в Java с Swing?
Я использую Netbeans IDE 7 и JDK 7 и без фреймворков. Первое окно - это JFrame, а все остальные окна - JDialogs с modal = true.
Вопросы:
Как правильно реализовать шаблон MVC с качелей? Из идей ниже Какой из них лучше: (A) или (B)? Или, может быть, еще один ... Почему это лучше?
(A) Main:
MyModel model MyView view(model)
MyView:
MyController(this, model)
(B)
Main:MyModel model MyView View MyController controller(view, model)
, когда я нажимаю jButton1 в MainFrame мне это нужно , чтобы открыть SettingsFrame для редактирования настроек , где я должен создавать экземпляр View, Model и Controller для параметра SettingsFrame? В контроллере MainFrame?
Что касается организации и реализации MVC, как мне обрабатывать более конкретные функции, которые (по-видимому) не имеют одной или двух из «ножек» MVC (как модели, так и вида или контроллера)? Должен ли я создавать для них пустые классы?
a. The implementation of a TrayIcon b. A URL connection class (an HttpsUrlConnection which will update data in the main jframe and also upload/download files) c. A Directory Monitor (which will update data in the main jframe and also use the urlconnection to download a file) d. My own implementation of TableModel e. json
Как правильно сохранить и использовать объект с настройками через все приложение? Мне нужна его информация в разных местах (Views, Models, Controllers), но она может быть изменена пользователем во время выполнения). Это хорошая идея сделать эту модель синглом?
Что я должен делать, когда:
a. View needs some data from the Model? What I'm doing: using the reference of Model which I keep in the View b. View needs some data from the Controller? What I'm doing: using the reference of Controller which I keep in the View c. Model needs some data from the Controller? Still didn't happen but I have no idea how to do correctly d. Model needs some data from the View? What I'm doing: pulling all my hair from my head... e. Controller needs some data from the View? What I'm doing: using the reference of the View which I keep in the Controller f. Controller needs some data from the Model? What I'm doing: using the reference of the Model which I keep in the Controller g. One of FooModel, FooView or FooController needs data from one of BarModel, BarView or BarController? What I'm doing: thinking of jumping from the highest building...
Любые намеки о том, как знать, если я правильно реализовать MVC? Должен ли я обрабатывать массивные данные в модели или контроллере?
Я также с помощью DAO, что я делаю это: моя модель имеет
ArrayList MyModel нагрузки()
метод, который создает экземпляр DAO и возвращает ArrayList моделей, возвращаемых DAO, а затем иногда обрабатываю этот ArrayList моделей в модели, и иногда я разрешаю контроллеру обрабатывать его. Это хорошая практика или есть лучший способ? По процессу я имею в виду: итерацию через ArrayList и получение данных из моделей.
У меня есть проверка пароля jDialog, чтобы ограничить доступ к некоторым представлениям. Как я могу повторно использовать его с точки зрения MVC, чтобы я мог использовать тот же диалог PasswordCheck, чтобы разрешать/ограничивать доступ к различным представлениям, не делая беспорядок в коде?
Другие советы, подсказки, идеи, предложения?
Контекст: Я должен разработать Java Swing MVC программного обеспечения в течение короткого времени, хотя по умолчанию я не разработчик Java и не так используется для реализации шаблона MVC, особенно в Java (я получаю эту идею, но иногда мне не хватает знаний для реализации отношений между классами). Приложения в основном представляют собой монитор для локальных/онлайн-файлов с JTable в главном кадре, чтобы показать эти данные. Я использую новый WatchService API для отслеживания локальных файлов и сохранения их информации в базе данных h2 с помощью DAO, и они перезагружают эти данные в главном фрейме jtable. Я также должен уведомить пользователя о новых файлах (для которых я использую TrayIcon). Для онлайн-мониторинга файлов/загрузки/загрузки я использую HttpsUrlConnection и json. Он также может разрешить настройку настроек.
Заранее благодарим за вас время и помощь.
+1, мне нравится идея, представленная так сильно, как мне понравилась ссылка, также поможет мне в моих начинаниях :-) +1 к вопросу, очень хорошо объясненному, я был первым, кто смог продвинуть оба: -) –
Спасибо за ответ. Что вы подразумеваете под «см. Мою записку о регистрации»? Я видел предложение солнца раньше, но, так как вы его рекомендовали, я буду читать его более внимательно и внимательно и попытаюсь решить мои сомнения.Я также поддержал это. – dcr
+1 См. Также этот [пример] (http://stackoverflow.com/a/3072979/230513), который следует за контуром (http://stackoverflow.com/a/2687871/230513), аналогичным диаграмме процитированы. – trashgod