【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
【javaFX学习】(一) 建一个简单的界面的更多相关文章
- 用IntelliJ IDEA学习Spring--创建一个简单的项目
		这段时间想学习一下Spring,其实之前学过Spring,只是有些忘记了.而且之前学的时候是适用eclipse学习的,现在好像对IntelliJ这个工具使用挺多的,现在就学习一下这个工具的用法,顺便复 ... 
- JSP学习1---创建一个简单的jsp程序
		一.新建一个“Dynamic Web Project”动态Web项目 1.1输入项目名称 Project1,在Dynamic Web module version(动态Web模块版本),选择3.0(注 ... 
- Linux第三周学习总结——构造一个简单的Linux系统MenuOS
		第三周学习总结--构造一个简单的Linux系统MenuOS 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/ ... 
- LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS
		LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ... 
- pipelinewise 学习二 创建一个简单的pipeline
		pipelinewise 提供了方便的创建简单pipeline的命令,可以简化pipeline 的创建,同时也可以帮我们学习 生成demo pipeline pipelinewise init --n ... 
- django学习-11.开发一个简单的醉得意菜单和人均支付金额查询页面
		1.前言 刚好最近跟技术部门的[产品人员+UI人员+测试人员],组成了一桌可以去公司楼下醉得意餐厅吃饭的小team. 所以为了实现这些主要点餐功能: 提高每天中午点餐效率,把点餐时间由20分钟优化为1 ... 
- java学习之—实现一个简单的ArrayList
		package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ... 
- 《Linux内核分析》第三周学习小结 构造一个简单的Linux系统OS
		郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第三周 构造一个简单的Linux系统Me ... 
- micronaut 学习 二   创建一个简单的服务
		micronaut 提供的cli 很方便,我们可以快速创建具有所需特性的应用,以下是一个简单的web server app 创建命令 mn create-app hello-world 效果 mn c ... 
随机推荐
- Oracle学习笔记之用户自定义函数
			自定义函数语法格式: 用户自定义的函数,可以直接在sql语句中直接调用,并且任何一个funciton都必须有返回值,而且该函数声明后,是保存在数据端的,我们随时可以使用:注意:函数只能有一个返回值 ... 
- Fork/Join-Java并行计算框架
			Java在JDK7之后加入了并行计算的框架Fork/Join,可以解决我们系统中大数据计算的性能问题.Fork/Join采用的是分治法,Fork是将一个大任务拆分成若干个子任务,子任务分别去计算,而J ... 
- [maven(1)]myeclipse2014下如何配置maven
			1.maven工程下载,解压压缩包到某一目录中 2.配置环境变量 在电脑环境变量中新建M2_HOME M2_HOME:D:\MAVEN\apache-maven-3.3.9(类似Java_Home) ... 
- Redhat Linux 自动修改密码
			bash下使用echo+passwd命令修改密码的方法.方法一:echo "Password" |passwd username --stdin方法二:(echo "Pa ... 
- sqoop1.4.6导出oracle实例
			1.导入odbj6.jar到$SQOOP_HOME/lib目录下. 2.sqoop import --append --connect jdbc:oracle:thin:@219.216.110.12 ... 
- 暑假练习赛 003 A Spider Man
			A - Spider Man Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:262144KB ... 
- 关于安卓手机的牛逼软件termux使用
			最近在学着用linux,偶尔发现了一款神奇的软件--termux,termux是一款来自国外的终端模拟器,是运行在内部存储上的程序(不在内存卡上),功能比较强大,启动程序之后会进入命令行终端,需要基本 ... 
- 网络基础二  tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集
			第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ... 
- php缓存模块apc可能导致php-fpm终止
			如果你的网站出现502错误.同时你网站中又使用了apc模块来做缓存处理.那么这篇文章兴许能帮到你. 首先,查看了php-fpm 的进程数. 发现php-fpm的进程数已经到达了php-fpm.conf ... 
- [置顶]【实用 .NET Core开发系列】- 导航篇
			前言 此系列从出发点来看,是 上个系列的续篇, 上个系列因为后面工作的原因,后面几篇没有写完,后来.NET Core出来之后,注意力就转移到了.NET Core上,所以再也就没有继续下去,此是原因之一 ... 
