Не работает onMousePressed у ScrollPane

179
02 января 2018, 15:08

Здравствуйте! Вот код

ScrollPane sp = new ScrollPane();
sp.setOnMousePressed(event -> {
    System.out.println("pressed");
});
sp.setOnMouseDragged(event -> {
    System.out.println("dragged");
});

Но почему-то это не работает, ничего не происходит при нажатии по ScrollPane. Что не так?

Answer 1

Попробуйте вариант с ананимным классом:

ScrollPane sp = new ScrollPane();
sp.setOnMousePressed(new EventHandler() {
public void handle (Event event) {
System.out.println("X: " + ((MouseEvent) event).getX() + " Y: " + (MouseEvent) event).getY());
}
});

А лучше всего имплементируйтесь от интерфейса EventHandler и реализуйте его метод handle и в нем пишите что вам надо, а при вызове метода sp.setOnMousePressed(this) просто укажите конструктору ключевое слово this.

Answer 2

Всё сработает, если добавлять слушатели не к самому ScrollPane, а к его контенту, т.е. вот:

ScrollPane sp = new ScrollPane();
Node content = sp.getContent();
content.setOnMousePressed(event -> {
//Ваши действия
});
READ ALSO
не отображается текст в JComboBox

не отображается текст в JComboBox

Есть переопределенный JComboBox, в котором вставлены свои иконкиКод скопирован и до конца не понятен

231
LibGdx: проблема с прозрачностью при создании скриншота

LibGdx: проблема с прозрачностью при создании скриншота

Через стандартный способ - https://githubcom/libgdx/libgdx/wiki/Taking-a-Screenshot реализовал создание скриншотов, но в полупрозрачных областях спрайтов полупрозрачными...

218
Проверка, на клик по элементe $('menu')

Проверка, на клик по элементe $('menu')

Нужна проверка , если был клик на элементе $('menu')тогда функция не должна срабатываться

220
Как скопировать в буфер обмен картинку (не ссылку) с HTML-страницы по нажатию кнопки

Как скопировать в буфер обмен картинку (не ссылку) с HTML-страницы по нажатию кнопки

Облазил весь интернет, нашёл только как ссылку вытащить в буфер, но нужна именно картинкаМожет быть, есть какой-то шаблон как это сделать

246