移至csdn更新:http://blog.csdn.net/qq_37837828/article/details/78732563
用过swing都知道有多蛋疼,界面有多丑。自从用了javaFX,腰也不酸了,腿也不疼了。
废话不多说,开撸!
工具: IntelliJ IDEA (其实我也习惯用eclipse,但是一样东西能流行起来自然有它的道理)
jdk : 1.8
先从最简单的开始,新建一个类,写一个main函数(简单的我想打自己)。
public classMain{public static voidmain(String[] args) {
}
}
第一件事,继承application类以获得javaFX的所有功能。
importjavafx.application.Application;importjavafx.stage.Stage;public class Main extendsApplication{public static voidmain(String[] args) {
launch(args);//启动程序时,初始化javaFX设置
}
@Overridepublic void start(Stage primaryStage) throwsException {
}
}
start()方法就按字面意思理解就好了,程序启动执行的方法,所以我们的初始化界面的方法都写在里面。
那界面都有哪些东西呢,最外面那个带 - □ x 的部分,在javaFX中叫stage。 所以,我们至少需要一个stage,才能看见界面。而上面可以看到,在start(String primaryStage)中,已经有了一个stage,如何让
stage显示呢,调用stage.show()方法;
后面尽量写注释,就不多bb了。
importjavafx.application.Application;importjavafx.scene.Scene;importjavafx.scene.control.Button;importjavafx.scene.layout.StackPane;importjavafx.stage.Stage;public class Main extendsApplication{public static voidmain(String[] args) {
launch(args);//启动程序时,初始化javaFX设置
}
@Overridepublic void start(Stage primaryStage) throwsException {
Button button= new Button("点击按钮");
StackPane layout= new StackPane();//布局
layout.getChildren().add(button);//将按钮添加入布局
Scene scene= new Scene(layout,300,300);//设置布局、大小
primaryStage.setScene(scene);//将场景添加到stage
primaryStage.show();//显示stage
}
}
看图就很好理解了,控件添加到布局里面,布局添加到secen中,设置scene大小,scene添加到stage,显示stage。
下面给我们的按钮添加一个点击事件:实现EventHandler接口,重写hanle()方法,这里我为了方便就写在一个类里了,实际开发中最好分开,一个类只干一类事,一个方法只干一件事。
给按钮绑定事件:button.setOnAction(this);由于我这里是当前类继承的,所以这里写this就可以了。
importjavafx.application.Application;importjavafx.event.ActionEvent;importjavafx.event.EventHandler;importjavafx.scene.Scene;importjavafx.scene.control.Button;importjavafx.scene.layout.StackPane;importjavafx.stage.Stage;public class Main extends Application implements EventHandler{public static voidmain(String[] args) {
launch(args);//启动程序时,初始化javaFX设置
}
@Overridepublic void start(Stage primaryStage) throwsException {
Button button= new Button("点击按钮");//button.setOnAction(this::handle);
button.setOnAction(this);//绑定事件
StackPane layout= new StackPane();//容器
layout.getChildren().add(button);//将按钮添加入布局
Scene scene= new Scene(layout,300,300);//设置容器、大小
primaryStage.setScene(scene);//将场景添加到stage
primaryStage.show();//显示stage
}
@Overridepublic voidhandle(ActionEvent event) {
System.out.println("Click button !");
}
}