Я хочу знать, что можно отправлять основные классы Swing событий / actionlisteners, Events, компонентов через RMI.
Возможный сценарий : Если один клиент нажимает кнопку или перемещает ползунок, каждое нажатие кнопки или ползунка клиента и т. Д. Также и для других элементов свинга.
Я ожидаю ответа в контексте RMI и архитектуры Swing MVC, я хочу вызвать модели компонента Swing, например, ButtonModel, и хочу отправить свинг ActionEvent по проводам и зарегистрировать PropertyChangeListener / PropertyChangeSupport в качестве удаленных объектов для получения обновлений на сайте клиента.
Типичные примеры:
сервер должен вызывать этот метод для каждого клиента, когда в модели происходят какие-либо изменения
public void propertyChange(PropertyChangeEvent evt) {
for (AbstractViewPanel view: registeredViews) {
view.modelPropertyChange(evt);
}
}
в случае события на одном клиенте каждый клиент actionPerformed должен вызываться с сервера:
@Override
public void actionPerformed(ActionEvent e) {
}
это возможно? если нет то почему? где я мог бы столкнуться с проблемами, я имею в виду, какие классы являются передаваемыми (сериализованными), а какие нет ...
РЕДАКТИРОВАТЬ: здесь вы видите, что я вызываю Java Swing defaultbuttonmodel default Swing, единственное, что остается, когда некоторые его свойства или метод изменяют обновления get другого клиента, лучше всего будет следовать Swing propertychangelistener, если кто-то может мне просто помочь, осознав это, было бы здорово:
public class RemoteButtonModel extends UnicastRemoteObject implements Model {
private ButtonModel model = new DefaultButtonModel() ;
protected myModel() throws RemoteException {
super();
}
@Override
public void setEnabled(boolean b) throws RemoteException {
if (isEnabled())
model.setEnabled(false);
else{
model.setEnabled(true);
}
}
@Override
public boolean isEnabled() throws RemoteException {
return model.isEnabled();
}
}