Обработка событий мыши в javafx - PullRequest
0 голосов
/ 05 октября 2009

Могу ли я установить функцию при создании объекта, как я могу с переменными?

Учитывая, что у меня есть класс контейнера и класс CustomButton:

function doSomething():Void{}

var button:CustomButton = CustomButton{
   posX : 50;
   posY = 100;
   onMouseClicked: doSomething;

}

Короткая история: мне нужен объект основного контейнера для обработки событий мыши, возникающих в объектах, помещенных в контейнеры.

Ответы [ 2 ]

1 голос
/ 05 октября 2009

Самое простое изменение для вас - это изменить:

function doSomething():Void{}

до

function doSomething(e:MouseEvent):Void{}

Свойство action хорошее, но я уверен, что вам нужен какой-то пользовательский эффект ролловера или что-то с использованием onMouseEntered и т. Д.

1 голос
/ 05 октября 2009

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

function doSomething():Void{
    println("clicked");
}

var button:Button = Button{
    text: "Click Me"
    translateX: 50;
    translateY: 100;
    action: doSomething
}
Stage {
    title : "ButtonTest"
    scene: Scene {
        width: 200
        height: 200
        content: [ button ]
    }
}
...