1. 2.java有哪几种常见的实现动画的方法
一: 用多线程播放一组图片, 实现动画片的效果; 类似于逐帧动画,每个图片是动画的一帧
二: 在awt/swing界面里, 可以使用paint方法,去绘制图形,然后用swing提供的Timer或者多线程技术,去刷新绘制的图形
三:在JavaFX里, 本身就支持动画,并且封装了很多动画效果可以直接使用,比如逐帧动画.缩放动画,渐变动画,旋转动画,位置动画等.
强烈推荐使用javaFX来实现动画, 因为javaFX是现代化的图形界面工具,具有简单,强大,组件丰富,跨平台,支持Html5, 支持表格, 支持动画等多种优势
下面是一个javaFX绘制的动态表格
javaFX动态表格
2. javafx音频频谱数据怎么绑定动画
javafx音频频谱数据绑定动画的方法:
添加import static java.lang.Math.random,到import语句列表中,就可以绑定动画了。
动画由时间轴驱动,因此此代码创建时间轴,然后使用for循环向30个圆中的每一个添加两个关键帧。0秒处的第一个关键帧使用属性translateXProperty并translateYProperty在窗口内设置圆圈的随机位置。40秒的第二个关键帧也是如此。
因此,当播放时间线时,它在40秒的时间段内将所有圆圈从一个随机位置动画到另一个随机位置。
注意javafx的动画需要设置路径和节点进行绑定,但如果路径的属性绑定在设置路径之前,就会使得该路径的属性被设置成绑定属性的初始值。
采用JavaFX组件完成的一款小巧、界面精美的本地音乐播放器,支持(拖动 or 文件选择器)添加本地音乐。
歌曲以及删除它们、具有歌词文件解析、三种播放模式选择、歌词滚动、歌单列表控制、频谱图展示、歌词海报显示、自定义背景、系统托盘控制、一些快捷键等。同时使用.ini文件记录应用设置信息,数据库用sqlite。
主要功能清单:
支持系统托盘控制和全屏控制。
界面简洁而精美且支持自定义背景。
支持播放的音乐格式:mp3 文件、wav 文件、aac 文件。
支持解析歌词并展示。
支持解析歌词文件(缩略图、专辑、时长等)。
支持频谱图动效。
支持拖动添加文件。
支持歌单列表控制。
3. javafx 获得fxml的控制器
fx:controller属性对应的是类名称
fx:controller ="类"
程序中是FXMLLoader来加载这个fxml文件
读入后对所在的FXMLLoader对象上执行
MyController c=(MyController) fxmlloader.getController();
获得控制器
4. 有没有大神讲一下javaFx的用处跟优势
JavaFX主要用途 : C/S架构, 小游戏, 等,传统的GUI图形界面能做的, JavaFX基本都能胜任.并且还对网络支持良好, 比如WebView,HTMLEditor
JavaFX 优势如下:
界面默认皮肤,美观, 更具现代化的风格, awt/swing的默认外观有点老土...
组件更具丰富. 日期选择器,HTML编辑组件, 网页浏览组件(WebView) 等, 比awt/swing的组件丰富多了
支持 动画,特效,3D . 完成酷炫的效果, 只需要简单的代码即可实现.
原生的图表组件, 原生图表组件美观,且可以陪和动画和特效, 完成动态的拉风图表效果.
多媒体的支持,播放音乐和视频流畅.
支持属性的绑定, 比如把圆的大小和滑块的值绑定在一起, 拉动滑块即可改变圆的大小. 无需过多代码,简洁
和Web类似. JavaFX 也可以使用3层架构进行开发.方便美术人员参与界面的设计
HTML------------->FXML :结构 (美术人员)
CSS--------------->CSS: 外观(美术人员)
JavaScript-------->Controller.java : 行为 (开发人员)
5. 如何把fxml文件和java代码编写的事件控制器相关联
现在创建控制器来管理按钮事件。本例演示如何把FXML和Java代码编写的事件控制器相关联。
在Projects窗口,右击 Sample.java,选择 Refactor-- Rename .
输入FXMLExampleController后点击Refactor .
打开FXMLExampleController.java删除代码,用下面的代替 Example
9 .
Example 9
FXMLExampleController.java
package fxmlexample;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class FXMLExampleController {
@FXML private Label buttonStatusText;
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
buttonStatusText.setText("Submit button pressed");
}
@FXML protected void handlePasswordFieldAction(ActionEvent event) {
buttonStatusText.setText("Enter key pressed");
}
}
@FXML注解用来标识非公开控制器成员和方法。
作为Java的补充,也可以使用其他编译型语言如Scala来实现控制器。.
现在可以运行了。输入内容点击Submit试试。
想要完整代码,请下载 FXMLExample.zip .
使用脚本语言
除了使用Java创建控制器,可以使用任何提供jsR223-可编译脚本引擎的语言。比如 JavaScript,
Groovy, Jython, 还有Clojure.下面是用 JavaScript编码FXML的。
在fxml_example.fxml文件中,添加JavaScript声明到XML声明后。
<?language javascript?>
在 Button标记中,改变方法名称
:
onAction="handleSubmitButtonAction(event);"
更新标记PasswordField :
onAction="handlePasswordFieldAction(event);"
移除fx:controller 从 BorderPane标记中,在
<script>中添加js方法 ,见Example
10 .
Example 10 JavaScript in FXML
<BorderPane xmlns:fx="http://javafx.com/fxml">
<fx:script>
function handleSubmitButtonAction() {
buttonStatusText.setText("Calling the JavaScript");
}
function handlePasswordFieldAction(event) {
buttonStatusText.text = "More JavaScript";
}
</fx:script>
当然也可以把js方法写进外部文件 (比如 fxml_example.js)然后像下面这样引用:
<fx:script source="fxml_example.js"/>
使用脚本编写FXML,调试时可能不会步入函数体。
使用样式表
使用内联样式,也可以添加样式表然后为结点设置关联。下面创建了样式表来定义网格布局和标签控件的样式。
创建样式表.
在Projects窗口,右击fxmlexample文件夹,选择New -- Other .
在 New File对话框中,选择Other -- Cascading Style Sheet , 然后 Next .
输入 fxmlstylesheet后点击Finish .
用下面的代码代替原来的代码 Example
11 .
Example 11 Contents of Style
Sheet
@charset "utf-8";
/*
Document : FXMLstylesheet.css
*/
.grid-pane {
-fx-padding: 80 0 0 0;
}
.label {
-fx-font: normal 36px Tahoma;
}
打开 FXMLExample.java,把样式表加入到下面代码前面 s tage.show() .scene.getStylesheets().add("fxmlexample/fxmlstylesheet.css");
打开 fxml_example.fxml添加样式类.
为<String>元素添加导入语句。
<?import java.lang.*?>
用下面代码代替GridPane Example
12 .
Example 12 Style Class for Grid
Pane
<GridPane alignment="top_center" hgap="8" vgap="8">
<styleClass>
<String fx:value="grid-pane"/>
</styleClass>
用下面代码代替"Sign In" Label 。 Example
13 .
Example 13 Style class for
Label
<Label text="%signIn"
GridPane.columnIndex="0" GridPane.rowIndex="0">
<styleClass>
<String fx:value="label"/>
</styleClass>
</Label>
使用<styleClass>
标签时,风格会应用到所有的类,除非它有自己的内联风格。所以Example
13 中的更改不仅应用到了 Sign
In标签,也赋予了Username 和Password标签。但不会应用到Login Example标签,因为它有自己的内联样式,覆盖了其他风格。
6. 什么是JavaFX
JavaFX
在2007JavaOne会议上,Sun负责软件业务的执行副总裁格林公布了JavaFX Script:一种用于编写能够在支持Java的PC和手机上运行的应用软件的更简单的脚本语言。为了解决手机的兼容性问题JavaFX Mobile是一种面向手机厂商、提高Java应用软件在不同手机间兼容性的软件包。
Java包含了一种计算机编程语言和一个平台。
*Java编程语言是一种高级语言。由Sun微系统公司(Sun Macrosystem)发布,并作为一种开放的标准进行提供。
*Java平台包括了Java虚拟机和Java应用程序接口(API)。
Java将原程序编译成字节码(bytecode),并通过Java虚拟机(JVM)解释字节码的方式来执行。因为这种运行方式,只要针对不同的计算机平台准备相应的Java虚拟机,就可以很方便的实现Java语言的跨平台性。因此,Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。
Java的主要应用有如下几点:
*利用浏览器中的Java虚拟机运行于客户端的Applet。
*利用本地虚拟机运行的Java应用程序,通常利用Swing或SWT等来编写跨平台的GUI界面系统。
*通过编写Servlet/JSP来提供网络服务,运行于网络应用程序服务器中。
*利用嵌入式Java虚拟机运行于手机等移动设备的Java应用程序,使用J2ME API。
Java的产生
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。
Java的取名也有一个趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。
Java平台根据API和使用领域,主要分为三种技术
*Java SE (旧称J2SE) - Java Platform, Standard Edition, 定位在客户端,主要用于桌面应用软件的编程
*Java EE (旧称J2EE) - Java Platform, Enterprise Edition, 定义在服务器端Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统
*Java ME (旧称J2ME) - Java Platform, Micro Edition, 主要应用于嵌入式系统开发,如手机和PDA的编程
Java的特色
Java从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。Java是
*是一种软件技术
*是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
*是一种为 Internet发展的计算机语言
*是一种使网页(Web Page)产生生动活泼画面的语言
*是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
*是一种语言,用以产生「小应用程序(Applet(s))」
*是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
*是一种将安全性(Security)列为第一优先考虑的语言
*是一种使用者不需花费很多时间学习的语言
*是一种突破用户端机器环境和CPU结构的语言
*是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的