Как я могу обрабатывать 2 действия на кнопке?

Я спрашивал себя, можно ли с помощью кнопки java fx обрабатывать 2 клика. Как и 1-й вызов функции, 2-й щелчок остановит ее. Например, у меня есть код, в котором кнопка вызывает маркер над линейным графиком, но я хочу отключить его с помощью той же кнопки, когда я нажимаю ее один раз после ее активации.

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

AmitD 27.05.2019 14:11

@AmitD Вы думаете, что мне понадобится глобальное логическое значение?

Floxii 27.05.2019 14:36

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

AmitD 27.05.2019 14:38

попробую спасибо. Я уже пробовал что-то подобное 1 неделю назад, но когда я изменил логическое значение на false, мне не удалось вернуть его к истине.

Floxii 27.05.2019 14:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как уже сказал AmitD, вам нужно поддерживать какое-то постоянство, например, флаг глобальной области видимости. Затем, когда вы нажимаете кнопку, установите флажок, выполните нужную функцию и переключите флажок.

// in a scope higher than your action listener
boolean flag = false;

// code...

// action listener of your button:
if (flag){
    functionA();
} else {
    functionB();
}
flag = !flag;    

флаг глобального масштаба может быть логическим?

Floxii 27.05.2019 14:36

Если ваша кнопка должна быть классическим переключателем, то да. Если ваша кнопка должна иметь несколько состояний, используйте тип int.

Rapwnzel 27.05.2019 14:38

Я обновил свой ответ некоторым кодом, чтобы его было легче понять

Rapwnzel 27.05.2019 14:41

Другие вопросы по теме