javaFX制作helloWorld的几种方式

//起因:因为即便是使用了JavaFX Scene Builder来直接图形化排版,但是仍然对应javaAPI,了解整体结构还是很有必要的,这是有清晰逻辑的基础。

environment:{

  Spring Tool Suite

  Version: 3.8.4.RELEASE
  Build Id: 201703310825
  Platform: Eclipse Neon.3 (4.6.3)

}

  1. way1:File->New->Project->JavaFX->JavaFX Project->(输入你的工程名)->finish
  • 运行一下->得到一个空窗口->打开src/application/Main.java:{继承了Application,重写了start(Stage)方法{说下结构-}}
  • primaryStage为主窗体-----类似swing里的JFrame
  • Scene为场景-------需要添加一个布局面板,像一张铺平在桌面上的布,但不能直接放东西,需要布局来规范东西放置方式
  • root-------------为布局--layout---绑定在场景上,
  • 添加子空间,在fx里是以节点的方式添加的,如果你学过树结构,就是那样的,所以得使用root.getChildren得到列表。
  • 还有就是添加控件必须在使用布局面板生成场景前
  • 场景绑定在舞台上---显示舞台就出来效果了
  • 怎么启动?main方法里的launch方法是Application的静态方法,来继承实现了Application的类
  • 默认写的layout是BorderPane但是刚学不会加,改成了FlowPane...
  •  1 package application;
     2
     3 import javax.swing.JOptionPane;
     4 import javafx.application.Application;
     5 //import javafx.event.ActionEvent;
     6 import javafx.stage.Stage;
     7 import javafx.scene.Scene;
     8 //import javafx.scene.control.Alert;
     9 //import javafx.scene.control.Alert.AlertType;
    10 import javafx.scene.control.Button;
    11 //import javafx.scene.control.Dialog;
    12 //import javafx.scene.layout.BorderPane;
    13 import javafx.scene.layout.FlowPane;
    14 public class Main extends Application {
    15     @Override
    16     public void start(Stage primaryStage) {
    17         try {
    18             FlowPane root = new FlowPane();
    19             //-----------------test-----------------add----------(
    20             Button button = new Button("hello JavaFX");
    21             root.getChildren().add(button);
    22             button.setOnAction((event)->{//lambda表达式
    23                 //不会用FX的弹出对话框
    24                 JOptionPane.showMessageDialog(null, "Hello JavaFX");
    25             });
    26             //-----------------test-----------------add----------)
    27             Scene scene = new Scene(root,400,400);
    28             scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
    29             primaryStage.setScene(scene);
    30             primaryStage.show();
    31         } catch(Exception e) {
    32             e.printStackTrace();
    33         }
    34     }
    35
    36     public static void main(String[] args) {
    37         launch(args);
    38
    39     }
    40 }

    2.way2:way1不要直接Finish,next到最后,Declarative UI->language:FXML

  • 从Main.java的start(Stage)中可以看出,布局面板是通过加载Sample.fxml得到,就可以通过修改.fxml来更改布局
  • Main.java:

     1 package application;
     2
     3 import javafx.application.Application;
     4 import javafx.stage.Stage;
     5 import javafx.scene.Scene;
     6 import javafx.scene.layout.FlowPane;
     7 import javafx.fxml.FXMLLoader;
     8
     9
    10 public class Main extends Application {
    11     @Override
    12     public void start(Stage primaryStage) {
    13         try {
    14             FlowPane root = (FlowPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
    15             Scene scene = new Scene(root,400,400);
    16             scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
    17             primaryStage.setScene(scene);
    18             primaryStage.show();
    19         } catch(Exception e) {
    20             e.printStackTrace();
    21         }
    22     }
    23
    24     public static void main(String[] args) {
    25         launch(args);
    26     }
    27 }

  • 文件介绍:
时间: 2024-10-10 12:03:46

javaFX制作helloWorld的几种方式的相关文章

前端制作动画的几种方式(css3,js)

制作动态的网页是是前端工程师必备的技能,很好的实现动画能够极大的提高用户体验,增强交互效果,那么动画有多少实现方式,一直对此有选择恐惧症的我就总结一下,以便在开发的时候选择最好的实现方式. 1.css的transition. 语法: transition: property duration timing-function delay; property:填写需要变化的css属性如:width,line-height,font-size,color等; duration:完成过渡效果需要的时间(

【REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框&&获取组件实例常用的两种方式

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2346.html 本篇Himi来利用ListView和TextInput这两种组件实现对话.聊天框. 首先需要准备的有几点:(组件的学习就不赘述了,简单且官方有文档) 1. 学习下 ListView: 官方示例:http://reactnative.cn/docs/0.27/tutorial.html#content

Scala学习2 ———— 三种方式完成HelloWorld程序

三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. 按照第一篇在windows下安装好scala后,直接Ctrl+R,然后在运行命令窗里输入scala,或者输入cmd后,进入命令行在输入scala. 然后我们输入 print("Hello World!") 看下结果: 第一种方式运行完毕. 注意:前两行命令使用了Tab键,可以像bash一样有补全的功能哦! 二.Scala脚本完成H

python制作电脑定时关机办公神器,另含其它两种方式,无需编程!

小编本人目前就是在电脑面前工作,常常会工作到凌晨两三点还在为自己的梦想奋斗着.有时在办公椅上就稀里糊涂睡着了,我相信有很多朋友和我一样,这样是很不好的.第一对身体不好,第二对电脑不好. 对身体方面,小编也只能说大家年轻的时候千万要对自己好点,特别是在电脑面前工作的朋友,不然以后身体毛病变多,就很难受了.像我才二十多岁,现在坐两个小时就会背部发麻,股椎那里也有轻微疼痛,所以各位朋友千万要注意这一点. 对电脑不好,虽然你已经没有在使用它,但是电脑却一直在工作,CUP一直在运转,它就像我们的人脑一直在

Android: Android Studio签名打包的两种方式(zz)

注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思,请自行百度哦.在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application", 1.方式1:通过Android Studio进行签名: 选中app这个module,选择菜单栏"Build-Generate

Spring 实例化bean的三种方式

第一种方法:直接配置Bean Xml代码   <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的bean.XML代码: Xml代码   <bean id="userA" class="com.test.User"/> Java代码   package com.test public class User{ public void test(){ Sys

Spring创建对象的三种方式以及创建时间

创建对象的三种方式: 1.采用默认的构造函数创建 2.采用静态工厂方法 1.写一个静态工厂方法类 public class HelloWorldFactory { public static HelloWorld getInstance(){ return new HelloWorld(); } } 2.在spring的配置文件中进行声明 <bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorld

java开发webservice的几种方式(转载)

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟.这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便. (1)下载eclipse的Java EE版本 http://www.eclipse.org/downloa

NGUI制作字体的三种方法

主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 2.BMFont使用方法 http://momowing.diandian.com/post/2013-01-24/40046239211 首先打开Font Settings,选择要制作的字体.可以从Font列表中选择一种字体,也可以通过Add font files导入一个t