Java Приложение Swing к приложению браузера - PullRequest
0 голосов
/ 10 апреля 2020

Отказ от ответственности: я только начал программировать год go. У меня есть опыт работы только с java и python, и я никогда не касался html, css, JavaScript et c.

. Поэтому я создал довольно сложный Java Swing GUI программа. По сути, это модифицированная настольная игра, в которой используются такие вещи, как SwingWorker, MouseListener, потомки JComponents. Я ищу способ конвертировать эту программу, чтобы она могла быть запущена в браузере (не иметь многопользовательский режим онлайн с серверами, а что нет). У кого-нибудь есть советы, как к этому подойти? Я быстро прогуглил и нашел Vaadin и webswing, но я не знаю, содержат ли они все функции, которые мне нужны, или стоит того, чтобы сделать это с ними. Спасибо.

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Поскольку вы явно упомянули Ваадина в качестве примера, я подробно остановлюсь на том, что он приносит на стол. Ваадин использует модель программирования, очень похожую на Swing. Это означает, что вы можете в целом структурировать свой код таким же образом, то есть путем создания и настройки компонентов как экземпляров Java, добавления этих компонентов в качестве дочерних компонентов компонентов макета и, наконец, прослушивания событий этих компонентов.

Реальные реализации компонентов отличаются от реалий в Swing, но тот же базовый набор c компонентов, как кнопки, поля ввода текста и сетки данных, все еще доступен. Различные реализации компонентов означают, что вам все равно придется переписывать весь код, относящийся к фактическому GUI.

Преимущество Vaadin в этом случае заключается в том, что вам не нужно просто изучать, как работают браузеры. реализовать то, что изначально работает в браузере. Вы также можете повторно использовать весь свой существующий не-1009 * код с относительно небольшими изменениями. С другой стороны, вы также можете рассматривать это как возможность познакомиться с нативными веб-технологиями, такими как HTML и JavaScript, поскольку это очень полезный навык.

0 голосов
/ 10 апреля 2020

Вы описываете апплет java, который больше не является жизнеспособной платформой.

Если вы хотите использовать java для логики приложения c, но не интерфейс, вы можете Рассмотрим интерфейсную библиотеку, которая подключается к java бэкенду с помощью веб-сокетов или ajax вызовов.

Если вам абсолютно необходимо использовать Swing, тогда вам остается только отрендерить приложение на сервере, а затем отправить «снимки экрана» или, возможно, отрисовка вызовов в браузере и их рендеринг на холст с использованием javascript, что, по сути, и делают библиотеки, которые вы обнаружили. Он медленный и сбойный, и, вероятно, не очень масштабируемый.

Другой вариант - упаковать приложение java в исполняемый файл или jar и запустить его на удаленной системе самостоятельно, но доставить через браузер.

...