Различение ответов от двух окон графического интерфейса, сделанных из одного класса - PullRequest
0 голосов
/ 09 ноября 2019

Я делаю игру с 2 программами, одна для сервера и одна для клиента. Клиентская программа имеет класс графического интерфейса, который имеет несколько кнопок. Допустим, у меня есть 2 клиента, которые используют один и тот же класс Gui, но имеют разные окна (Gui открыт). Поэтому, когда один клиент нажимает кнопку, как бы я точно узнал, от какого клиента я получаю этот ответ.

Итак, в моей клиентской программе у меня есть 3 класса, один из которых создает графический интерфейс, второй устанавливает соединение между сервером иклиент (в основном создающий клиента) и третье - это просто логика и информация, хранящаяся для игры. Вот что я пытался делать в классе GUI. (У класса GUI есть экземпляр клиента, и GUI создается при каждом запуске клиента)

button.setOnAction(e->{
//...
    if(client1.id == 1){
         //do something with the client1 object...
    }
    if(client2.id == 2){
         //do something with the client2 object...
    }
}

Так что, когда первый клиент нажимает кнопку в своем окне GUI ... это происходит, еслиоператор и, поскольку оба идентификатора клиента 1 и клиента 2, очевидно, будут равны 1 и 2 соответственно, он входит в оба оператора if и вносит изменения в оба объекта client. Несмотря на то, что на клиенте не было нажато ни одной кнопки 2, всегда вносятся некоторые изменения. Но я пытаюсь внести изменения в этих клиентов, если и только если была нажата их собственная кнопка GUI клиента. Пожалуйста, помогите, я пытался понять это с двух дней. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...