移至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. GET 和 POST 比较整理

    差异 上传文件只能使用 POST GET 传输数据有大小限制 GET 传输的数据类型不灵活:GET是使用url来传输数据,那么比如空格字符以及类似&这样的字符就不方便传输.(当然可以使用发送前 ...

  2. Java并发之CountDownLatch、CyclicBarrier和Semaphore

    CountDownLatch 是能使一组线程等另一组线程都跑完了再继续跑:CyclicBarrier 能够使一组线程在一个时间点上达到同步,可以是一起开始执行全部任务或者一部分任务. CountDow ...

  3. 1. Apache ZooKeeper快速课程入门

    Tips Tips做一个终身学习的人! 日拱一卒,功不唐捐. 在过去的几十年里,互联网改变了我们生活的方式.Internet上提供的服务通常由复杂的软件系统支持,这些系统跨越了大量的服务器,而且常常位 ...

  4. MongoDB复制

    1. 什么是复制 (1)MongoDB复制是将数据同步在多个服务器的过程. (2)复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. (3)复制还允 ...

  5. vue.js快速搭建图书管理平台

      前  言 上一期简单讲解了vue的基本语法,这一次我们做一个小项目,搭建一个简单的图书管理平台,能够让我们更深刻的理解这门语言的妙用.   1.DEMO样式 首先我们需要搭建一个简单的demo样式 ...

  6. LeetCode 64. Minimum Path Sum(最小和的路径)

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  7. Windows下mysql5.5主从同步

    前置条件: A主机(作为主服务器) 环境:Win7,mysql5.5 IP:172.17.42.82 B主机(作为从服务器) 环境:Win7,mysql5.5 IP:172.17.42.156 主服务 ...

  8. sqoop1.4.6从mysql导入hdfs\hive\hbase实例

    //验证sqoop是否连接到mysql数据库sqoop list-tables --connect 'jdbc:mysql://n1/guizhou_test?useUnicode=true& ...

  9. solr安装血泪史

    Windows10专业版,solr6.5.1,tomcat8.5.14,jdk1.8 转自http://www.jianshu.com/p/dd7a59b3f0b5 科普篇 来自百度百科:Solr简介 ...

  10. 算法:JavaScript两数之和

    题目 Given an array of integers, return indices of the two numbers such that they add up to a specific ...