`
somefuture
  • 浏览: 1089771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(翻译)第六回 JavaFX2.0 UI 控件

阅读更多

原文地址http://download.oracle.com/javafx/2.0/ui_controls/overview.htm

 

 

JavaFX控件是通过API在场景图形中使用结点构建的,所以它们可以使用javaFX平台的富视觉特点。由于javaFX API是完全用Java语言实现的,所以可以轻松将javaFX UI 控件集成进已存在的Java应用中。

JavaFX 2.0中支持的UI控件

UI控件的构造类位于API的javafx.scene.control 包中。

控件列表包括了你可能很熟悉的用Java开发客户端应用的典型UI组件。不过,JavaFX 2.0 SDK引入了新的Java UI 控件,比如TitledPane 和TableView .

Figure 1-1 是一副屏幕截图,有三个TitledPane 元素和一个社交类型列表,并且列表可以滑入 (retract)和滑出 (extend).

可以从 API文档查看全部UI控件。

UI 控件类比Control类提供了更多的变量和方法,这样就能以直观的方式支持典型的用户交互。你可以使用层叠样式表(CSS)为你的UI组件设计特殊样式。对于某些个别任务,还可能要继承Control 类来创建定制的UI 组件,或者使用Skin 接口为已存在的控件定义一个新皮肤。

从样例中的Ensemble 应用试着了解下控件的范围、它们的行为、可以实现的样式。

特性和效果

由于javafx.scene.control包中的 UI 控件都继承了 Node 类,所以它们可以和场景图形的渲染、动画、变换及动画过度进行整合。

考虑创建一个按钮,为它添加倒影并通过时间线修改它的透明度来让它闪动。

Figure 1-2 展示了这个按钮的三个不同时间线上的状态。左边的图像是不透明度设为1.0时 ,中间的图像是不透明度 0.8 ,最右边的不透明度是0.5 .

Figure 1-2 Animated Button

Screenshot of the animated button
Description of "Figure 1-2 Animated Button"

通过使用JavaFX API只用少量代码就能实现这个任务。

Example 1-1 创建了一个无限的时间线并开始了它,里面有一个600毫秒的关键帧设置按钮的不透明度从默认值(1.0)向 0.0变化。setAutoReverse 使得时间线可以自动反向。

Example 1-1 Creating an Animated Button

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.util.Duration;
import javafx.scene.control.Button;
import javafx.scene.text.Font;
import javafx.scene.effect.Reflection;

...
Button button = new Button();
    button.setText("OK");
    button.setFont(new Font("Tahoma", 24));
    button.setEffect(new Reflection());
 
final Timeline timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.setAutoReverse(true);
final KeyValue kv = new KeyValue(button.opacityProperty(), 0);
final KeyFrame kf = new KeyFrame(Duration.millis(600), kv);
timeline.getKeyFrames().add(kf);
timeline.play();
...

你也可以应用 javafx.scene.effect 包中的其他效果,比如shadow, lighting, 或者 motion blur.

为UI控件添加CSS装饰

通过定义自己的Cascading Style Sheets (CSS)可以定制内建的UI控件。在JavaFX 应用中使用CSS很像在HTML中使用,因为都必须遵循相同的CSS 规范。控件的视觉效果由.css文件定义,见代码Example 1-2 .

Example 1-2 Defining Styles for UI Controls in the CSS File

/*controlStyle.css */
 
.scene{
    -fx-font: 14pt "Cambria Bold";
    -fx-color: #e79423;
    -fx-background: #67644e;
}
 
.button{
    -fx-text-fill: #006464;
    -fx-background-color: #e79423;
    -fx-border-radius: 20;
    -fx-background-radius: 20;
    -fx-padding: 5;
}

可以通过Scene类中的 getStylesheets 方法应用该效果,见Example 1-3 .

Example 1-3 Applying CSS

Scene scene = new Scene();
scene.getStylesheets().add("uicontrolssample/controlStyle.css");
//译者注:添加外部css文件时,即使文件和类在同意目录下,也要加上css所在的包名。

另外,你可以通过使用setStyle方法直接定义控件风格。 Example 1-4 中的 -fx-base 属性为场景中新增的双态按钮定义,它重写了CSS文件中对应的属性。

Example 1-4 Defining the Style of a Toggle Button in the JavaFX Application

ToggleButton tb3 = new ToggleButton ("I don't know");
tb3.setStyle("-fx-base: #ed1c24;");

Figure 1-3 展示了双态按钮的效果。

 

Figure 1-3 Applying CSS Style to a Toggle Button

Applying an alternative base color to a toggle button
Description of "Figure 1-3 Applying CSS Style to a Toggle Button"

 

图表

除了为用户接口提供典型元素外, JavaFX SDK在 javafx.scene.chart包中 提供了预置图表。以下类型图表已经可以支持了:area chart, bar chart, bubble chart, line chart, pie chart, and scatter chart。一个图表可以包含几个系类的数据。

Figure 1-4 是一个进口水果饼图。

 

 

和其他Java客户端工具不同,使用JavaFX SDK 只需要在应用中添加几行代码就能构建这样的图表。你也可以定义一系列的颜色表和风格、应用视觉效果、处理鼠标事件、创建动画等。

Using JavaFX Charts 了解更多的图表特性和功能信息。

 

集成JavaFX 2.0 UI 控件和 Swing

可以将 JavaFX UI 控件集成进已存在的用Swing构建的Java客户端应用。

要集成JavaFX内容和Swing,请安装以下步骤:

  1. 将JavaFX UI 控件一个一个地添加到javafx.scene.Scene 对象中的布局容器中,比如一个group.

  2. Scene 对象加入Swing 应用.

即使把一个单独的JavaFX 2.0 控件加入到已存在的Swing代码中也要做上面的两个步骤。

尽管它们被集成进了Swing程序,JavaFX 2.0 UI 控件也依然被菱镜图形库(Prism graphical library)渲染 ,并具有全部的高级渲染能力。

第七回 了解更多二者的集成信息。

 

0
0
分享到:
评论

相关推荐

    JavaFX2.0内建控件教程(全部控件)

    JavaFX 2.0 提供了一系列丰富的内置用户界面(UI)控件,这些控件可以帮助开发者快速构建美观且功能强大的应用程序。JavaFX UI 控件位于 `javafx.scene.control` 包中,并继承自 `Node` 类,这使得它们能够被轻松地...

    JavaFX2.0 体系结构和框架

    【JavaFX2.0 体系结构和框架】深入解析 JavaFX2.0 是一个基于Java技术的丰富客户端平台,专为开发富互联网应用程序(RIAs)设计,它以其出色的动态画面和美观的用户界面而受到赞誉。尽管中文资料相对较少,但通过对...

    JavaFX2.0内建控件教程

    本篇教程内容覆盖 JavaFX 内建的有效图形界面控件(UI 控件),包括如下章节内容:  JavaFX UI Controls  Label  Button  Radio Button  Toggle Button  Checkbox  Choice Box  Text Field  ...

    javaFX高级教程JavaFX2.0的FXML语言 中文文档

    ### JavaFX 2.0 的 FXML 语言高级教程 #### 概述 JavaFX 2.0 引入了一种新的声明性标记语言——FXML(发音为 “fizz-le”),这是一种基于 XML 的语言,专门用于定义应用程序的用户界面。通过使用 FXML,开发者...

    javafx2.0 中文文档.zip

    其次,JavaFX 2.0提供了丰富的内置控件,如按钮、文本框、菜单等,这些控件都经过优化,具有良好的性能和可定制性。开发者可以通过修改样式表(CSS)来改变控件的外观,实现个性化设计。此外,自定义控件也是可能的...

    JavaFX高级教程:JavaFX2.0的FXML语言(中文版)

    JavaFX 2.0 是一个强大的富互联网应用程序(RIA)平台,用于构建具有美观图形界面的应用程序。在JavaFX 2.0中,FXML(FXML Language)被引入,这是一种基于XML的声明性语言,专门用于定义应用程序的用户界面。这个...

    JavaFX 2.0 電子書 - Pro JavaFX 2

    最新JavaFx 2.0 電子書 In Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology, Jim Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, and Johan Vos show you how you can use the JavaFX ...

    javafx2.0官方例子

    javafx2.0,java,javafx,例子,代码 Sun公司(已于20092008年12月05日发布了JavaFX技术的正式版,它使您能利用 JavaFX 编程语 言开发富互联网应用程序(RIA)。JavaFX Script编程语言(以下称为JavaFX)是Sun微...

    JavaFX2.0基础教程.pdf

    - **JavaFX2.0中支持的UI控件**:详细列举了JavaFX2.0版本中提供的UI控件类型及其用途。 以上是对《JavaFX2.0基础教程》的主要知识点总结,希望能够帮助初学者快速了解JavaFX的基本概念和开发流程。

    javafx2.0在netbeans插件

    6. **JavaFX 控件和布局**:JavaFX 提供了一系列预先构建的 UI 控件,如按钮、文本框、表格等。开发者可以通过 NetBeans 插件拖放这些控件到场景图中,同时可以设置布局管理器来组织控件的排列。 7. **动画和特效**...

    JavaFx2.0入门指南

    JavaFX 2.0 入门指南是针对那些希望通过JavaFX快速开发富用户体验应用程序的开发者设计的。这个指南,源自Oracle官方,包含了中英文对照,旨在帮助初学者快速上手。在本文档中,你将学习如何利用JavaFX创建一个名为...

    JavaFX 2.0 Introduction by Example.zip

    JavaFX 2.0 Introduction by Example.zip是javafx2.0的最新书籍《[JavaFX.2.0:Introduction.by.Example].Carl.Dea》上的源码!大家可以下载本书和源码一起看!我都上传了!

    Javafx 2.0: Introduction by Example

    Javafx 2.0: Introduction by Example

    javaFx2.0 实例

    在JavaFX 2.0中,我们可以为控件(如按钮、文本框等)添加事件监听器,以便在用户执行特定操作(如点击、输入)时执行相应的代码。例如,`setOnMouseClicked`方法可以用来设置鼠标点击事件,而`setOnKeyPressed`则...

    javafx_2.0_introduction_by_example

    随着行业向多核/多线程类型平台及GPU的发展,JavaFX 2.0利用这些特性来提高执行效率和UI设计的灵活性。这一方向的目标是为企业级应用程序的架构师和开发者提供一套工具和API,帮助他们构建更高效的数据驱动型业务...

    JavaFX2.0基础教程(整合版)

    JavaFX2.0平台是java客户端设计演进,使应用开发者易于创建和部署跨平台且表现一致的Rich Internet Application(RIAs)。JavafX是由Java技术构建,基于高性能硬件加速的媒体和图形引擎,JavaFX平台提供了一套丰富的...

Global site tag (gtag.js) - Google Analytics