Мне нужно написать кроссплатформенное приложение с графическим интерфейсом для обработки (в нескольких потоках) и визуализации довольно больших объемов данных. В идеале приложение должно быть относительно быстрым и хорошо выглядеть.
Интерфейс приложения будет состоять из виджета таблицы, виджета дерева и пользовательского виджета для рисования фигур. Пользователь сможет изменять данные из любого из этих виджетов, и изменения должны быть немедленно отражены в других виджетах.
Естественно, я планирую использовать MVC. Тем не менее, я обычно занимаюсь программированием GUI на C ++ / Qt и очень мало знаком с Java. Поэтому я был бы очень признателен за советы о том, как организовать такое приложение на Java. В частности, я должен использовать Swing или JavaFX? Какие виджеты вы бы выбрали для работы? Не могли бы вы порекомендовать какие-либо книги / онлайн-учебники, которые охватывают эти аспекты платформы Java?
Я буду очень признателен за любые отзывы. Спасибо!
(этот вопрос был изначально опубликован в Stack Overflow , но этот сайт был предложен в качестве более подходящего места для того, чтобы задать его)
Перейти с рисунком Model-View-Presenter вместо этого. Вы можете посмотреть хороший пример MVP в Swing здесь через проект mvp4j .
Хотя и не Swing, я также ознакомился бы со статьями о MVP на сайте разработчиков GWT Google, чтобы узнать больше об этом шаблоне и о том, как применить его в Java; одни и те же принципы проектирования стоят независимо от каркаса, а GWT очень похож на Swing.
Краткое описание того, как работает MVP:
При правильной реализации MVP сделает ваше приложение очень отделенным и позволит вам вносить изменения, не нарушая другие области вашего приложения.
Изменить: Исходя из вашего решения использовать JavaFX, я бы порекомендовал проверить следующие статьи
источник
Необходимые виджеты можно найти как в Swing, так и в SWT . Документация содержит примеры компонентов (Swing) или виджетов (SWT), поэтому их будет довольно легко идентифицировать.
Swing - это библиотека графического интерфейса, включенная в JDK и созданная с нуля. SWT является внешним и компоненты основаны на нативных.
Что касается MVC, они оба поддерживают его. В Swing у вас есть Модель для каждого компонента, которая практически предоставляет базовые данные. Сам компонент является и представлением, и контроллером.
источник