javafx是一款比较新兴的语言框架,随着javafx越来越实用,估计许多程序员也会慢慢接触它,故我在这里对它由浅到深进行介绍一下.

首先,要了解javafx,就应该先知道.xml文件的布局软件,以往java都是通过敲代码来进行布局的,但javafx有力新的突破,它实现了拖动方式,目前我使用的辅助软件是JavaFX Scene Builder 2.0,故这一篇文章我主要首先介绍一下JavaFX Scene Builder 2.0这款软件,希望对大家有所帮助.

打开JavaFX Scene Builder 2.0软件,我们可以看到三大块,第一块是布局所需的元素集合,第二块是布局的位置,第三块是属性的一些设置,下面对这三块我来一一介绍.

一. 布局元素
   1.
containers容器一栏,在这一栏中有各种容器,所谓容器,就是用来装载其他按钮表格之类的一块区域,合理地利用容器,可以很好的进行布局,
 建议初学者将每个容器一一拖到布局位置进行查看它的效果,从而掌握每个容器应用到何处,其中Vbox以及Hbox是以后介绍页面正常全屏显示的    
     关键,请大家关注接下来的一些文章

2.
controls,控制器一栏,这一栏的元素存在的基础是有容器,控制器必须放在容器中,每个控制器都是自己独立的显示方式以及功能,lable文字标
签控制器,用来显示一些文字;button按钮控制器,用来做功能按钮;checkbox复选框,用来判断是否选择的选择框;choicebox,combobox,
         
文字选择器,用来选择下拉框中的文字;imageview图片加载器,用来放置图片(注意:实际编程时,改图片必须存放在该项目源文件夹中,与
            该.xml文
件处于同一目录下);pagination分页控件,与表格一起使用可以加载多页数据;tableview表格控件,可以在其中加载所需的数据,数    
      据源可以来自
于数据库;textfiled文本框控件,用于输入信息的,可以用来输入存储信息及查询信息等等,还有更多其他的控件,在以后会做更多        
的介绍,并且会介绍一些控件具体的程序实现。

二. 布局位置

1.
用鼠标将布局元素直接拖至这块区域,就可以看到所拖元素的展现形式,可以在这一调整元素的大小以及位置,并且温馨提示一下,如果你要使
用ctrl+v,那么你所粘贴的元素会出现在与你选中元素同一个容器中,即粘贴的元素与选中的元素是同一级别的。如果有一些误操作,建议使用      
      ctrl+z来进行恢复。

三. 属性

1.   properties基本属性块,editable选则是否可编辑,一般来说,对有输入型的控件比较适用,例如textfiled控件,如果可编辑状态没有打钩,那么
这个文本框就不可以输入值;disable是否可用的状态编辑,如果这一项打上钩,那么就会发现,这个元素正题颜色会变得暗淡,变现为不可用    
       
状态;visiable是否可见状态,如果这一项不打钩,就会发现这个元素在布局上没有了,貌似隐藏了,实际上就是将这个元素隐藏起来,并且不      
     
可用;cursor鼠标状态,主要用来设置鼠标移动到这个元素位置上时,鼠标显示的图标形状,通常一些功能按钮会设置成hand图标类型;style  
          风格设置,可以用来设置元素底色之类的。

2.
layout属性块,padding主要针对的是元素在布局中的位置,可以上下左右的位置进行相应的微调;接下来的height跟width这些属性将对Hbox及
Vbox的全屏显示布局显示至关重要,因此后面会涉及到全屏显示到底如何具体设置;接下来的xyz基本上就是设置元素在页面上位置的属性。

3. code属性块

fx:id
:这个主要是给这个元素设置一个ID,这个Id主要是为了能够清晰的在程序中辨别出各个元素,一般而言,基本上绝大部分元 素都是需要
 去辨别的,所以除了一些实在不需要作程序处理的元素,其他的都必须给一个Id,而且在同一个.XML文件中,一般每个元素对应的 id都不会      
     
     相同,id有着明确的指向性;

On Action触发事件:事件是ActionEvent,在这里设置一个触发函数名,然后在程序中给这个函数写入相 应的方法,这个事件 的触发是鼠标左  击这个元素就可以了;

On Key
Pressed触发事件:事件是KeyEvent,在这里设置一个触发函数,然后在程序中写入相应的方法,这是一个键盘按键触发事件,只要有
按钮按下就会触发,经常实现的就是Enter键触发事件的设置,在这个触发事件正增加一个判断是否为Enter键操作,即可实现按回车键进行      
 
         搜素的事件。

On Mouse
Clicked触发事件:事件是MouseEvent,在这里设置一个触发函数,然后在程序中写入相应的方法,这是一个鼠标触发事件,只要  
鼠标点击相应的元素(无论左击还是右击),就可以触发这个函数,当然,如果你不希望左右击都实现功能,则可以在这个函数中添加一个        
        鼠标左右击的判断事件,从而实现只有左击或右击实现功能,具体如何在程序中如何判断,以后会介绍。

On Mouse
Dragged触发事件:事件是MouseEvent,在这里设置一个触发函数,然后在程序中写入相应的方法,这是一个鼠标点击拖动事      
件,当鼠标点击按住不动开始拖动时,就不断地触发这个函数,这个触发事件可以做鼠标拖动页面的操作。

以上是经常会用到的一些触发事件,还有其他更多的触发事件,在这里就不作一一介绍了,有兴趣的同学可以自己去一一尝试其他触发事件的               作用。

这一期就写到这里,下一期将通过程序来具体介绍一些控件的具体操作以及设置。

原文地址:http://blog.csdn.net/z01014274/article/details/44101125

javafx由浅到深的 认识(一)的更多相关文章

  1. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  2. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  3. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  4. 浅入深出Vue:环境搭建

    浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...

  5. 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置

    浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...

  6. 浅入深出Vue:工具准备之WebStorm安装配置

    浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...

  7. 浅入深出Vue系列

    浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...

  8. 浅入深出Vue:前言

    浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...

  9. Service由浅到深——AIDL的使用方式

    前言 最近有很多朋友问我这个AIDL怎么用,也许由于是工作性质的原因,很多人都没有使用过aidl,所以和他们讲解完以后,感觉对方也是半懂不懂的,所以今天我就从浅到深的分析一下这个aidl具体是怎么用的 ...

随机推荐

  1. 用js提取字符串中的某一段字符

    String.prototype.getQuery = function(name){var reg = new RegExp("(^|&)"+ name +"= ...

  2. Vue(三)指令

    v-text:更新元素的text内容 <template> <div class="about"> <p v-text="msg" ...

  3. Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array(动态规划.递推)

    传送门 题意: 给你一个包含 n 个元素的序列 a[]: 定义序列 a[] 的 beauty 为序列 a[] 的连续区间的加和最大值,如果全为负数,则 beauty = 0: 例如: a[] = {1 ...

  4. 关于rocketmq的配置启动

    #集群名称brokerClusterName=rocket-nameserver#broker-a,注意其它两个分别为broker-b和broker-cbrokerName=broker-a#brok ...

  5. NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks

    文章名称:NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks 发表时 ...

  6. MySQL启动出现The server quit without updating PID file错误解决办法

    启动mysql服务的时候报下面这个错: 之间网上搜了各种办法,有重新初始化的(这怎么可能,里面还有数据...),有修改启动脚本的等等,但是都没用. 其实解决办法非常简单粗暴,那就是把/etc/my.c ...

  7. rcu-bp关键代码解读

    1      什么是TLS 原理在网上资料很多,这里不展开. 简单点说,动态申请的每线程变量.有一类比较熟悉的每线程变量是一个带__thread的每线程变量,两者的区别在于,TLS这类每线程变量是动态 ...

  8. 安装pandas报错(AttributeError: 'module' object has no attribute 'main')

    在pycharm中安装pandas出现报错:AttributeError: 'module' object has no attribute 'main', 刚开始以为是pip的版本太旧了,于是乎将其 ...

  9. Spring AOP获取方法的参数名称和参数值

    aop配置: <aop:aspectj-autoproxy expose-proxy="true" /> @Before(value = "execution ...

  10. IAR 关于C++几个内存的使用及释放的问题

    由于之前工作中常常遇到,但是遇到的时候工作总是要求比较紧急,没有那么多时间细细寻找有效的解决办法.现在了解到了一些,记录一些. 1. string vector 都是增量在堆里,所以只要有增量都是在堆 ...