JavaFX Demo学习2-----ImageRollover
今天偷个懒。一个很简单的程序,响应鼠标事件,效果如下。代码在附件。
鼠标点上会变色,其实就是换图片,Swing里面也很简单就实现了。看下代码。
public class CloseButton extends CustomNode { private attribute image:Image; private attribute images:Image[]; public attribute onClicked:function():Void; init { images = [ Image { url: __DIR__+"resources/close_normal.png" }, Image { url: __DIR__+"resources/close_hover.png" }, Image { url: __DIR__+"resources/close_pressed.png" }, ]; image = images[0]; } public function create():Node { return ImageView { image: bind image onMouseEntered: function(e:MouseEvent) { image = images[1] } onMouseExited: function(e:MouseEvent) { image = images[0] } onMousePressed: function(e:MouseEvent) { image = images[2] } onMouseReleased: function(e:MouseEvent) { image = images[0]; if(onClicked != null) { onClicked(); } } } } }Frame { visible: true stage: Stage { content: CloseButton { } }}
package imagerollover;import java.lang.System;/** * @author Ivan */public class TestInit { init{ System.out.println("Hello"); }}TestInit{}
onClicked = function(){ System.out.println("Clicked"); };