JavaFX 2.0入门指南:打造跨平台富应用

需积分: 9 1 下载量 64 浏览量 更新于2024-07-26 收藏 3.7MB PDF 举报
"JavaFX 2.0 是 Java 开发者用于快速构建丰富跨平台应用程序的下一代图形用户界面(GUI)工具包。它从底层构建,利用现代GPU的硬件加速图形功能,同时提供了设计良好的编程接口,使开发者能够将图形、动画和UI控件结合在一起。新的JavaFX 2.0是一个纯Java语言的应用程序编程接口(API)。其关键架构策略包括重用现有的Java库以及在运行在JVM上的其他语言(如Visage、Jython、Groovy、JRuby和Scala)之间建立通信的桥梁。" JavaFX 2.0 的主要知识点包括: 1. **硬件加速图形**:JavaFX 2.0 利用现代GPU的能力,通过硬件加速来提供高性能的图形渲染,这使得开发者可以创建更复杂、更动态的用户界面。 2. **编程接口**:JavaFX 2.0 提供了简洁易用的API,使得开发者可以轻松地处理图形、动画和用户界面元素,增强了开发者的生产力。 3. **跨平台支持**:作为Java的一部分,JavaFX 2.0 支持跨平台应用开发,这意味着开发一次,可以在多个操作系统上运行,包括Windows、Mac OS X和Linux等。 4. **与Java库的兼容性**:JavaFX 2.0 设计时考虑了与现有Java库的兼容,开发者可以利用已有的Java技术栈,无需完全重构,从而降低学习曲线和开发成本。 5. **多语言支持**:JavaFX 2.0 API 允许与其他运行在JVM上的语言(如Jython、Groovy、JRuby和Scala)进行交互,扩展了开发者可以选择的技术栈,促进了代码复用和团队协作。 6. **图形和动画**:JavaFX 2.0 提供了强大的图形和动画功能,包括形状绘制、图像处理、文本渲染和复杂的运动效果,这使得开发者可以创建引人入胜的视觉体验。 7. **Web集成**:JavaFX 2.0 还支持在Web环境中运行,可以嵌入到HTML5页面中,为Web应用程序提供丰富的客户端体验。 8. **用户界面组件**:JavaFX 2.0 包含一套完整的UI控件集合,如按钮、文本框、菜单等,这些控件都是可定制的,可以满足不同应用的需求。 9. **书籍结构**:《JavaFX 2.0:Introduction by Example》这本书可能包含了关于JavaFX基础、图形处理、媒体支持和Web集成等多个章节,通过实例教学帮助读者理解和掌握JavaFX 2.0 的使用方法。 10. **技术审阅**:书中的技术审阅者为该领域的专家,这确保了书中内容的专业性和准确性。 11. **作者和致谢**:作者Carl Dea以及技术审阅者的贡献对于书籍的质量和实用性起到了关键作用,而致谢部分通常会提及对书籍编写过程提供帮助的个人或组织。 通过阅读这本书,开发者不仅可以了解JavaFX 2.0 的基础知识,还能深入学习如何利用JavaFX 2.0 构建实际的应用程序,提升其在图形用户界面设计和跨平台开发方面的技能。

Exception in Application constructor Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071) Caused by: java.lang.RuntimeException: Unable to construct Application instance: class com.example.demo.Main at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:891) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.IllegalAccessException: class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) cannot access class com.example.demo.Main (in module com.example.javafxtest) because module com.example.javafxtest does not export com.example.demo to module javafx.graphics at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392) at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:489) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:803) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184) ... 1 more

2023-05-24 上传

Exception in Application constructor Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:893) Caused by: java.lang.RuntimeException: Unable to construct Application instance: class Main at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.NoSuchMethodException: Main.<init>() at java.lang.Class.getConstructor0(Class.java:3110) at java.lang.Class.getConstructor(Class.java:1853) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:818) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177) ... 1 more出现这个报错怎么解决

2023-05-26 上传