JavaFX教程:构建图形用户界面

需积分: 9 20 下载量 168 浏览量 更新于2024-08-02 收藏 3.26MB PDF 举报
"《使用JavaFX构建图形用户界面应用》(Building GUI Applications With Javafx)是一份由Oracle公司提供的教程,它专注于JavaFX技术,这是一个用于开发富客户端应用程序(RIA)的强大工具。JavaFX是Java平台的一部分,旨在提供高性能、丰富的图形界面体验。该教程发布于2008年11月26日,涵盖了JavaFX编程的核心概念和语法,特别强调了声明式语法、节点、形状、视觉效果、动画以及布局和事件处理。 教程共分两部分: 1. 快速JavaFX GUI概述:这部分为初学者提供了一个直观的指南,介绍了JavaFX API的基本功能。通过一系列的截图,读者可以了解到图形对象、用户界面组件、视觉效果、文本样式、颜色方案以及布局模式等。这些元素是构建用户界面的基础,让开发者能够快速上手并理解如何利用JavaFX来创建吸引人的界面。 2. 使用声明式语法:深入讲解JavaFX Script编程语言的声明式编程方式。通过一步步的实践指导,学习者可以掌握如何利用声明式语法简洁地定义UI行为和布局,这种编程风格提高了代码的可读性和维护性。 在开始这个教程之前,建议先熟悉JavaFX Script的核心概念和语言基础,以及如何下载和安装必要的软件。《JavaFX Script编程语言入门》中的“Getting Started with JavaFXScript”部分会提供这些基础知识的介绍。 整个教程旨在帮助开发者掌握JavaFX技术,无论你是希望创建桌面应用还是富互联网应用(RIA),都能通过本教程提升图形用户界面设计和开发的能力。通过学习,开发者将能熟练运用JavaFX的特性,为用户提供流畅且交互性强的用户体验。"

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 上传