|
|
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважвемые форумчане! Помогите пожалуйста если кто в курсе: никак не соображу как отловить нажатие на одном из элементов в ChoiceBox. Есть ActionListner - работает как положено. Проблема в том что при нажатии на один из элементов нужно ВСЕГДА выполнять определенное действие. С листнером это работает только если перед этим был выбран другой элемент, но если этот же (скажем "ДЕЙСТВИЕ") уже выбран и нажать по нему еще раз - ничего (и это логично). Мои неудачные попытки: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Последний срабатывает когда я нажимаю непосредственно на ChoiceBox, а не на каком-либо элементе из выпадающего списка, что мне необходимо получить (причем не только для мыши конечно). Остальные два не срабатывают вообще:( "Банальный" setOnAction работает только на изменении выбранного эдемента как SelectionListner. Итак, может ли кто-либо подсказать как отловить нажатие на элементе из списка ChoiceBox? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:00 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
RuslanGab, Собыие клик мышкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:09 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Petro123, То что я попытался реализовать тут: [SRC java][/SRC]dateIntervalsBox.setOnMousePressed(eh); Срабатывает только с нажатием не сам ChoiceBox. Дальнейшее нажатие на какой-либо из элементов списка уже не отлавливается! Повесить событие нажатия на ObservableList (то бишь сами объекты в боксе) я тоже не могу :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:43 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
javaFX не знаю, но вам надо гуглить что-то типа javafx ChoiceBox listener или javafx choicebox changelistener в теории: надо ловить event в этом листенере и у него брать какое-то проперти и его значение, а дальше уже вызывать то что должно произойти при выборе того или иного элемента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:48 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
А понял, вам надо еще раз вызывать метод, который вызывается при выборе "нового" элемента. Я это сделал у себя так, что есть отдельная кнопка, которая смотрит выбранный элемент в списке и выполняет те же действия, что и выбор "нового" элемента списка. В общем, я не знаю, как вам помочь))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:51 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
RuslanGab, т.е. тебе надо, если выбрали ФИО твоего шефа, то сказать "ку". Даже если его не выбрали(смены не было), а просто кликнули? .... Изврат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:58 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Petro123RuslanGab, т.е. тебе надо, если выбрали ФИО твоего шефа, то сказать "ку". Даже если его не выбрали(смены не было), а просто кликнули? .... Изврат? По отдельности - можно. А оба пункта сразу - изврат, и даже мозги не хотят думать. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 13:59 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Nixic, NixicА понял, вам надо еще раз вызывать метод, который вызывается при выборе "нового" элемента. Да! авторвам надо гуглить что-то типа javafx ChoiceBox listener или javafx choicebox changelistener Сделал еще до публикации вопроса. Единственное что как-то способно работать - это по клику мышкой на сам бокс (т.е. до выбора самого элемента) чистить его selectionModel. Тогда что бы пользователь не выбрал (если на другом элементе не сфокусируется) это будет "новый" выбор. НО я не хочу делать ВСЕ действия еще раз и, что еще хуже, у меня с этим ГУИ завязаны, так что конкретно в моем случае отпадает. Блин, но ведь есть событие - он его читает и решает новый элемент выбран или нет. Потом уже если новый то он говорит мол "да есть изменение". Вот это первое событие блин найти бы... Попробую подебажить. Cтранно что "setOnHiding" не срабатывают - по моей логике должны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:02 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Petro123, авторт.е. тебе надо, если выбрали ФИО твоего шефа, то сказать "ку". Даже если его не выбрали(смены не было), а просто кликнули? .... Изврат? Да! Только изврата я не вижу особого: у меня там выбирается интервал дат для отчета и есть "кастомный", при нажатии на которого всплывает окно где задается "с" и "по". Вот и надо если на него еще раз нажимают опять это окно показать. Сейчас для этого надо сначала выбрать другой интервал а потом опять кастомный нажать - вообще не комильфо:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:05 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
RuslanGabТолько изврата я не вижу особого: у меня там выбирается интервал дат для отчета и есть "кастомный", при нажатии на которого всплывает окно где задается "с" и "по". Вот и надо если на него еще раз нажимают опять это окно показать. Сейчас для этого надо сначала выбрать другой интервал а потом опять кастомный нажать - вообще не комильфо:( ищи другое решение. Не понял, почему нельзя при первом выборе "Начальник" показать окно с ПодВыборомПараметра и потом его запомнить и менять, например при зажатой клавише Shift при клике (как в фотошоп) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:10 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Второй вариант - при выборе отчёта - показывать для каждого не всплывающее, а сворачиваемое окно НА самом окне где это список отчётов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:12 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Petro123, Да. Можно наверное переделывать, но я как истинный ленивец решил проще сделать: 1. Вешаем событие "по клику" на весь бокс. dateIntervalsBox.setOnMousePressed(eh); 2. Когда на бокс кликают то ЕЖЕЛИ там как раз выбран нужный элемент чистим выбор. Выходит что бы мы не выбрали он "думает" что перед этим ничего не было и срабатывает ChangeListner. Собственно это именно то что надо. Если прыгать между другими объектами "все по-старому" а в случае "НАЧАЛЬНИК" он всегда сделает свою работу. Даже в случае потери фокуса (пользователь "ушел" на другой объект) это совершенно нормально что в боксе ничего получается не выбрано КАК РАЗ именно в том случае если до того был выбран "НАЧАЛЬНИК". Как-то так. Вроде работает, хотя суда по названию "onHiding" должен был бы срабатывать когда список сворачивается (что-то выбрано) и я так и не понимаю отчего сие не так... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 3. Осталось работу с клавиатурой к этому прикрутить, но тут я таких сложностей не предвижу. Всем большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:27 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Везет :) - есть на dateIntervalsBox листенер, который щелчки видит, в Vaadin вот такого нет на PopupDateField. А мне бы хотелось двойной клик отслеживать и выставлять при этом элементу текущую дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:33 |
|
||
|
JavaFX: Как отловить нажатие на элементе в списке ChoiceBox?
|
|||
|---|---|---|---|
|
#18+
Nixic, Ну как везет... Я бы вот с VAADIN c удовольствием поработал, а то эти приложения для рабочего стола почти никому сегодня не нужны, а я все сплошь ими и занимаюсь - в вэбе и опыта толком никак не наберешь:( Так что не то чтоб очень везет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2016, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39360467&tid=2123426]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 516ms |

| 0 / 0 |
