zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    网络安全笔记1-局域网、DOS、用户与组、远程、NTFS、文件共享、DHCP、DNS、WEB、FTP、域、PKI、扫描与爆破
    ASM入网小助手卸载
    列表拖拽排序 ----vue.js
    如何让谷歌索引你的页面
    命令导入大数据库

    大数据-快读
    微服务参考文章
    Java-BigDecimal踩坑记录
    CF1285F Classical?
  • 原文地址:https://www.cnblogs.com/lensener/p/7976953.html
Copyright © 2011-2022 走看看