#java #swing #implementation #rmi
#java #swing #реализация #rmi
Вопрос:
Эти методы принадлежат ActionListener и PropertyChangeListener. мне нужно реализовать эти два случая и аналогичные с другими классами swing.
сервер должен вызывать этот метод для каждого клиента, когда в модели происходят какие-либо изменения:
public void propertyChange(PropertyChangeEvent evt) {
for (AbstractViewPanel view: registeredViews) {
view.modelPropertyChange(evt);
}
}
в случае события на одном клиенте каждое клиентское действие должно вызываться с сервера actionPerformed():
@Override
public void actionPerformed(ActionEvent e) {
}
любая помощь действительно ценится,
jibbylala
Ответ №1:
Поскольку вы подключили прослушиватель действий, когда пользователь нажимает на кнопку, вы можете просто преобразовать свой код действия в отдельный метод. Тогда ваш клиентский интерфейс RMI просто вызывает этот метод.
Это называется шаблоном делегирования.
Комментарии:
1. как насчет распространения с сервера на другие клиенты, означает, как другие клиенты будут получать обновления о возникновении этого события («нажата кнопка»), (не эта строка, а реальные нажатия кнопки)
2. То же самое, поскольку вы используете RMI, вы должны спроектировать свою систему таким образом, чтобы поддерживать разбивку на страницы. Например, общее количество страниц, смещение, количество элементов на странице и т.д… Если ваш RMI возвращает такую информацию, то ваша логика будет иметь дело с нумерацией страниц. (каждый запрос на другую страницу будет выполнять циклический перебор, переход к серверу и обратно к клиенту). RMI — это просто интерфейс, ваше приложение решает, какие сервисы вам нужны.
3. разбивка на страницы, страницы, смещение, количество элементов на странице … извините, я не понимаю вас, для меня это вырвано из контекста. пожалуйста, следите за контекстом.
4. Что ж, изучите разбивку на страницы, и вы поймете, что я только что сказал. Ваше приложение (на стороне клиента) и (на стороне сервера) должно уважать API, который вы «создаете», используя шаблон delgation для выполнения того, что вы хотите.