Control,Skin,behavior
在javaFX中每一个UI组件都由一个Control,Skin,behavior组成。首先创建一个Control类继承javafx.scene.control.Control,它持有组件的属性,并且作为主的class,也就是说由它实例化,并且被加到父节点中。skin则负责展示,而behavior负责交互。
[img]http://dl.iteye.com/upload/attachment/0078/8015/91013797-0130-3489-96c6-23e2cc96a013.png[/img]
如果组件只需要展示而没有交互,则只需要简单的创建behavior,因此只需要继承com.sun.javafx.scene.control.behavior.BehaviorBase。
创建一个skin,继承com.sun.javafx.scene.control.skin.BaseSkin,在此类中展示和布局子节点。
在javaFX中每一个UI组件都由一个Control,Skin,behavior组成。首先创建一个Control类继承javafx.scene.control.Control,它持有组件的属性,并且作为主的class,也就是说由它实例化,并且被加到父节点中。skin则负责展示,而behavior负责交互。
[img]http://dl.iteye.com/upload/attachment/0078/8015/91013797-0130-3489-96c6-23e2cc96a013.png[/img]
如果组件只需要展示而没有交互,则只需要简单的创建behavior,因此只需要继承com.sun.javafx.scene.control.behavior.BehaviorBase。
public class MyCustomControlBehavior extends BehaviorBase { public MyCustomControlBehavior(MyCustomControl control) { super(control); } }
创建一个skin,继承com.sun.javafx.scene.control.skin.BaseSkin,在此类中展示和布局子节点。
public class MyCustomControlSkin extends SkinBase{ public MyCustomControlSkin(MyCustomControl control) { super(control, new MyCustomControlBehavior(control)); } }