2015-04-15 4 views
0

Итак, у меня есть четыре кнопки в главном меню, и я хочу, чтобы пользователь мог только нажать одну кнопку за раз. Причина этого в том, что некоторые из моих кнопок переходят на другой экран. Если они нажимают эту кнопку более одного раза, экран будет загружаться два или три раза, и я этого не хочу. Таким образом, дешевое исправление устанавливает все кнопки для отключения, когда пользователь нажимает на любую из этих кнопок, а затем снова включается, как только они возвращаются на экран. Я мог бы использовать радио кнопки, но тогда дизайн экрана будет разрушен. Есть идеи?Как сделать кнопку нажатой только один раз в javafx

+1

Возможно, просто используйте свойства? Создайте новое свойство в своем контроллере, всегда меняйте его состояние, когда все кнопки должны быть отключены. Затем привяжите disableProperty каждой кнопки к состоянию вашего свойства. Поэтому все кнопки всегда отключены, когда вы изменяете состояние свойства при нажатии одной кнопки. – NDY

+0

Я пытаюсь отключить одну кнопку, привязывая логическое свойство к disableproperty кнопки вроде этого isDisabled = new SimpleBooleanProperty(); optionButton.disableProperty(). BindBiirectional (isDisabled); то когда они нажимают эту кнопку, я делаю это isDisabled.set (false). Это не работает, хотя почему? –

+0

@NDY Спасибо, что это был очень хороший совет –

ответ

1

Вот один простой ответ.

isDisabled = new SimpleBooleanProperty(); 
backToMain.disableProperty().bind(isDisabled); 

Тогда я использовал

isDisabled.setValue(true); // in my eventhandler method 

, и она работала.

Если у кого-то есть лучший ответ, отправьте его.

+0

Это именно то решение, которое я имел в виду. – NDY

Смежные вопросы