【javaFX学习】(一) 建一个简单的界面

移至csdn更新:http://blog.csdn.net/qq_37837828/article/details/78732563

用过swing都知道有多蛋疼,界面有多丑。自从用了javaFX,腰也不酸了,腿也不疼了。

废话不多说,开撸!

工具: IntelliJ IDEA   (其实我也习惯用eclipse,但是一样东西能流行起来自然有它的道理)

jdk   :   1.8

先从最简单的开始,新建一个类,写一个main函数(简单的我想打自己)。

public class Main{
    public static void main(String[] args) {
        
    }
}

  第一件事,继承application类以获得javaFX的所有功能。

import javafx.application.Application;
import javafx.stage.Stage;

public class Main extends Application{
    public static void main(String[] args) {
        launch(args);//启动程序时,初始化javaFX设置
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

    }
}

 start()方法就按字面意思理解就好了,程序启动执行的方法,所以我们的初始化界面的方法都写在里面。

 那界面都有哪些东西呢,最外面那个带 - □ x 的部分,在javaFX中叫stage。 所以,我们至少需要一个stage,才能看见界面。而上面可以看到,在start(String primaryStage)中,已经有了一个stage,如何让

stage显示呢,调用stage.show()方法;

后面尽量写注释,就不多bb了。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application{
    public static void main(String[] args) {
        launch(args);//启动程序时,初始化javaFX设置
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        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<ActionEvent>接口,重写hanle()方法,这里我为了方便就写在一个类里了,实际开发中最好分开,一个类只干一类事,一个方法只干一件事。

给按钮绑定事件:button.setOnAction(this);由于我这里是当前类继承的,所以这里写this就可以了。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application implements EventHandler<ActionEvent>{
    public static void main(String[] args) {
        launch(args);//启动程序时,初始化javaFX设置
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        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
    }

    @Override
    public void handle(ActionEvent event) {
        System.out.println("Click button !");
    }
}

 转载注明出处:http://www.cnblogs.com/lensener/p/7976953.html

原文地址:https://www.cnblogs.com/lensener/p/7976953.html