第十四章:JavaFx基础
历程:AWT——>Swing——>JavaFx
JavaFx可以无缝的在桌面或web浏览器中运行
一.基本结构
java.application.Application定义JavaFx程序的基本程序
launch()方法运行一个独立的JavaFx应用
main方法不是必须的
结构:
Java图形的尺寸单位都是用像素
setStoke:画笔颜色
setFill:填充颜色
在JavaFx中,面板左上角为(0,0)x轴从左向右递增,从上到下递增
二.属性绑定
属性绑定:如果源对象中的值改变了,目标对象的值也跟着改变
getCenterX();//值得获取方法,返回double类型的值
CenterXproperty();//属性的获取方法,返回DoubleProperty类型的对象
bind;//单项绑定
bindBidirectional;//双向绑定
三.节点的通用属性和方法
1.语法:styleName:value
多个样式可以一起设置,用分号分割
circle.setStyle("-fx-stroke:black;-fx-full:red");
rotate属性可以设置一个以度为单位的角度,让他围绕中心旋转该角度
如果角度大于0:顺时针,否则,逆时针
contains(double x,double y);//检测(x,y)是否在一个节点的边界之内
四.Color类
opacity : 0.0:完全透明 1.0:完全不透明
r,g,b: 0.0:最深色 1.0:最浅色
五.事件与事件源
成为处理器的条件:
- 处理器必须是一个对应事件处理接口的实例
Action 必须继承自EventHandle<ActionExent> 且必须实现handle方法
- 处理器必须通过源对象进行注册
ActionEvent->setOnAction()
MouseExent->setOnMouseEvent()
六.内部类
1.通常只有一个类只被外部类调用的时候,才叫内部类
一个内部类的特征
- 内部类可以引用外部类中方的数据和方法
- 一个内部类可以使用可见修饰符修饰,和应用于一个类中成员的可见性规则一样
- 一个内部类可以定义为static,可根据外部类的名字访问,但不能访问外部类的非静态成员
- 内部类通常是在外部类中创建的,但你也可以从另外一个类中创建一个内部类的实例,如果内部类是非静态的,你必须先创建一个外部类的实例
Outerclass.Innerclass innerObject=OuterObject.new Innerclass();
- 如果内部类是静态的,你必须使用以下语法创建内部类实例:
Outerclass.Innerclass innerObject=new Outerclass.Innerclass();
2.生成的字节码文件
public class Test{
private int d;
public void m(){}
public class A{
d++;
}
}//生成的字节码文件有两个,分别是Test.class 和 Test$A.class
3.内部类的优点:
- 减少源文件的数量
- 避免类名的冲突
七.匿名内部类
1.匿名内部类语法
new SuperClass/interface(){
}
匿名内部类的特征:
- 总是继承父类或实现一个接口,不能有显式的extends或implements
- 必须实现父类和接口中的抽象方法
- 匿名内部类总是使用父类的无参构造来创建一个实例,如果一个匿名内部类实现一个接口,构造方法是Object();
- 匿名内部类被编译为 Test.class和Test$n.class
八.使用lambda表达式简化事件处理
1.使用lambda表达式的条件:
只包含一个抽象方法的接口可以使用,这样的接口称为功能接口
btEnlarge.setOnAction(
new EventHandler<AEvent>(){
public void handle(Action Event e){
}
}
)
//上面代码可以简化为:
btEnlarge.setOnAction(e->{System.out.println("");})
九.动画基础
PathTransition;//按路线运动
FadeTransision;//按透明度运动
TimeLine;//按时间运动
这一章带大家基本了解了一下javaFx,本人对此了解的不深,就不展开讲述了。
加油!第十五章待更……