移至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

【javaFX学习】(一) 建一个简单的界面的更多相关文章

  1. 用IntelliJ IDEA学习Spring--创建一个简单的项目

    这段时间想学习一下Spring,其实之前学过Spring,只是有些忘记了.而且之前学的时候是适用eclipse学习的,现在好像对IntelliJ这个工具使用挺多的,现在就学习一下这个工具的用法,顺便复 ...

  2. JSP学习1---创建一个简单的jsp程序

    一.新建一个“Dynamic Web Project”动态Web项目 1.1输入项目名称 Project1,在Dynamic Web module version(动态Web模块版本),选择3.0(注 ...

  3. Linux第三周学习总结——构造一个简单的Linux系统MenuOS

    第三周学习总结--构造一个简单的Linux系统MenuOS 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  4. LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

    LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ...

  5. pipelinewise 学习二 创建一个简单的pipeline

    pipelinewise 提供了方便的创建简单pipeline的命令,可以简化pipeline 的创建,同时也可以帮我们学习 生成demo pipeline pipelinewise init --n ...

  6. django学习-11.开发一个简单的醉得意菜单和人均支付金额查询页面

    1.前言 刚好最近跟技术部门的[产品人员+UI人员+测试人员],组成了一桌可以去公司楼下醉得意餐厅吃饭的小team. 所以为了实现这些主要点餐功能: 提高每天中午点餐效率,把点餐时间由20分钟优化为1 ...

  7. java学习之—实现一个简单的ArrayList

    package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ...

  8. 《Linux内核分析》第三周学习小结 构造一个简单的Linux系统OS

    郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第三周 构造一个简单的Linux系统Me ...

  9. micronaut 学习 二 创建一个简单的服务

    micronaut 提供的cli 很方便,我们可以快速创建具有所需特性的应用,以下是一个简单的web server app 创建命令 mn create-app hello-world 效果 mn c ...

随机推荐

  1. 墨卡托投影坐标系(Mercator Projection)原理及实现C代码

    墨卡托投影是一种"等角正切圆柱投影",荷兰地图学家墨卡托(Mercator)在1569年拟定:假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面 ...

  2. dubbo的架构

    dubbo架构图如下所示: 节点角色说明: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: ...

  3. 【UML 建模】类图介绍

    1.类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 2.类的关系有泛化(Generalization). ...

  4. json_encode()中文不转码

    php使用json_encode()把数组转换为json的时候,总会把中文进行转码,转码后从json数据上我们无法看出其中的中文文字.php5.4以后,当json_encode()的第二个参数赋值为J ...

  5. MySQL分区表与合并表

    一.分区表 1. 什么是分区表? 对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成(所以索引也是按照分区的子表定义的, 而没有全局索引).实现分区的代码实际上是对一组底层表的句柄对象的 ...

  6. Single linked List by pointer

    其实本应该从一般性的表讲起的,先说顺序表,再说链表 .但顺序表的应用范围不是很广,而且说白了就是数组的高级版本,他的优势仅在于两点:1.逻辑直观,易于理解.2.查找某个元素只需要常数时间--O(1), ...

  7. LeetCode 370. Range Addition (范围加法)$

    Assume you have an array of length n initialized with all 0's and are given k update operations. Eac ...

  8. 02-从零玩转JavaWeb-类与对象

    配套视频:对象与类 一.什么是对象 包含特性和行为的一个实体   下图当中,"颜色"和"体重"属于"特性或叫状态" "咬人&quo ...

  9. asp.net在类库中使用EF 6.0时的相关配置

    前提:之前使用EF的配置都是直接使用NuGet安装在项目中,然后直接修改web.config中的connectionString,然后创建相关dbcontext直接使用就可以了.此次为直接将EF安装在 ...

  10. 最长回文子串---Manacher算法

    百度:Manacher算法 代码 #include <iostream> #include <string> #include <cstring> #include ...