وبلاگ بلیان

The Definitive Guide to Modern Java Clients with JavaFX: Cross-Platform Mobile and Cloud Development Updated for JavaFX 21 and 23

معرفی کتاب «The Definitive Guide to Modern Java Clients with JavaFX: Cross-Platform Mobile and Cloud Development Updated for JavaFX 21 and 23» نوشتهٔ Arnold، Lobel و STEPHEN. VOS CHIN (JOHAN. WEAVER, JAMES.), Johan Vos, James Weaver، منتشرشده توسط نشر Apress L. P. در سال 2024. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Build enhanced visual experiences and design and deploy modern, easy-to-maintain, client applications across a variety of platforms. This book will show you how these applications can take advantage of JavaFX's latest user interface components, 3D technology, and cloud services to create immersive visualizations and allow high-value data manipulation. This book is a professional reference for building Java applications for desktop, mobile, and embedded in the Cloud age. It offers end-to-end coverage of the latest features in JavaFX 21 and 23. This third edition has been updated to include new features introduced in Java FX 21 and 23, including NEW APIs: Map, FlatMap, and OrElse fluent bindings for ObservableValue, along with the new Subscription API. Additionally, it's updated to account for new bug fixes and overall improvements to existing functionality in Java. After reading this book, you will be equipped to upgrade legacy client applications, develop cross-platform applications in Java, and build enhanced desktop and mobile native clients. What You Will Learn Create modern client applications in Java using the latest JavaFX 21 and 23 Build enterprise clients that will enable integration with existing cloud services Use advanced visualization and 3D features Deploy on desktop, mobile, and embedded devices Who This Book Is For Professional Java developers who are interested in learning the latest client Java development techniques to fill out their skills set Table of Contents About the Authors About the Technical Reviewer Contributors Chapter 1: Getting Started with Client Java Java Client Technology in Action Java Clients in Business Gaming and 3D Mobile Conference Apps A Modern Approach to Client Java Target Mobile First Build for the Cloud Package Your Platform Setting Up Your Environment macOS JDK Installation Windows JDK Installation Linux JDK Installation JavaFX Installation Your First Modern Java Client Coding Client Apps with IntelliJ IDEA Rapid Application Development with Scene Builder The Path to Modern Client Development Chapter 2: JavaFX Fundamentals JavaFX Stage and Scene Graph JavaFX Is Single-Threaded Hierarchical Node Structure A Simple Shape Example Color Text Is a Shape The JavaFX Coordinate System Layout Controls StackPane AnchorPane GridPane FlowPane and TilePane BorderPane SplitPane HBox, VBox, and ButtonBar Make a Scene Enhancing the MyShapes Application Linear Gradient DropShadow Reflection Configuring Actions Animation JavaFX Properties Property Listeners Invalidation Listeners Change Listeners Subscription-Based Listeners Binding Unidirectional Binding Bidirectional Binding Fluent API and Bindings API Using FXML Controller Class JavaFX Application Class Adding CSS Using Scene Builder Putting It All Together Master-Detail UI The Model Observable Lists Implementing ListView Selection Using Multiple Selection ListView and Sort Person UI Application Actions Delete a Person Add a Person Update a Person Person UI with Records Person Record Key Point Summary Chapter 3: Properties and Bindings Key Concepts Observable and InvalidationListener ObservableValue and ChangeListener Subscription WritableValue and ReadOnlyProperty JavaFX Properties Creating Bindings JavaFX Bindings Create Bindings by Direct Extension Type-Specific Specializations Factory Methods in Bindings Create Bindings with the Fluent API Observable Collections Factory and Utility Methods in FXCollections Change Listeners for Observable Collections Change Events in ListChangeListener Change Events in MapChangeListener Change Events in SetChangeListener Change Events in ArrayChangeListener Create Bindings for Observable Collections JavaFX Beans Eagerly Instantiated Property Half-Lazily Instantiated Property Fully Lazily Instantiated Property Selection Bindings Adapting Java Beans Summary Resources Chapter 4: JavaFX Controls Deep Dive The UI Controls Module What Is a UI Control? JavaFX Basic Controls Labeled Controls Label Button CheckBox Note: in this snippet and in snippets below the log() method is used as a short for System.out.println(). Hyperlink ToggleButton RadioButton Text Input Controls TextFormatter TextField, PasswordField, and TextArea Other Simple Controls ProgressBar and ProgressIndicator Slider Container Controls Accordion and TitledPane ButtonBar ScrollPane SplitPane TabPane ToolBar Other Controls HTMLEditor Pagination ScrollBar Separator Spinner Tooltip Popup Controls Menu-Based Controls Menu and MenuItem MenuBar MenuButton and SplitMenuButton ContextMenu ChoiceBox ComboBox-Based Controls ComboBox ColorPicker DatePicker JavaFX Dialogs Alert ChoiceDialog TextInputDialog Dialog and DialogPane Advanced Controls ListView Cells and Cell Factories Cell Editing Pre-built Cell Factories TreeView TableView TableColumn and TreeTableColumn Nested Columns Cell Factories in TableView TreeTableView Selection and Focus Models SelectionModel FocusModel Summary Acknowledgments Chapter 5: Mastering Visual and CSS Design Introduction to Cascading Style Sheets Selectors Based on Class Name Selectors Based on Custom Style Classes Selectors Based on Object ID Applying CSS Styles Loading CSS Stylesheets Applying CSS Styles to JavaFX Nodes Advanced CSS Techniques Using Descendant Selectors Using Pseudo-classes Using Imports Font Loading in the Stylesheet Reusing Styles Using Advanced Color Definitions Using Linear Gradients Using Radial Gradients Using Image Patterns Using RGB Color Definitions Using HSB Color Definitions Using Color Functions Using Effect Definitions Drop Shadow Inner Shadow Useful Tips and Tricks Study the Modena Stylesheet Define Themes Based on Modena Define Icons Using CSS CSS Reusability by Using Color Constants Using Transparent Colors Advanced CSS API Platform Preferences API CSS in JavaFX Applications: Summary Chapter 6: High-Performance Graphics Using Canvas Giving Life to a Canvas Application Particle Systems Fractals High Performance Conclusion Chapter 7: Bridging Swing and JavaFX Integrating JavaFX into Swing JFXPanel: Swing Component with JavaFX Inside Threading Interaction Between Swing and JavaFX Drag and Drop with JavaFX and Swing JavaFX 3D Integrated in Swing Integrating Swing into JavaFX Migration Strategies Large-Scale Integrations Conclusion Chapter 8: JavaFX 3D Prerequisites Getting Started with Shapes Shape3D Sphere Box Cylinder Creating User-Defined 3D Shapes Camera ParallelCamera PerspectiveCamera Light Understanding the LightBase Class Understanding the AmbientLight Class Understanding the PointLight Class Material Understanding the PhongMaterial Class Adding Texture to 3D Shapes Interacting with JavaFX 3D Scenes Understanding the PickResult Class Third-Party Software: FXyz 3D FXyz 3D Sample Conclusion Chapter 9: JavaFX, the Web, and Cloud Infrastructure Integrating with the Web Displaying a Web Page Adding Navigation and History Showing Loading Progress From Web Sites to APIs Building for the Cloud Architecture of a JavaFX Cloud Application Use Case: Querying OpenWeather Conclusion Chapter 10: Packaging Apps for the Desktop Web vs. Desktop Applications Evolutions in Application Deployment The jpackage Tool What Is jpackage? Using jpackage jpackage Usage jpackage Options Requirements WiX Setup Samples Nonmodular Application: Sample1 Instructions for Windows Modifying the Installer macOS Modifying the Installer Linux Modular Application: Sample2 Windows macOS Linux Gradle Projects Using GraalVM’s Native Image Platform Requirements Requirements for macOS Requirements for Linux Requirements for Windows The Code Maven Project Gradle Project Build the Project Compile Link Run Conclusion Chapter 11: Native Mobile Apps for iOS and Android Why JavaFX on Mobile Different Approaches for Mobile Apps OS-Specific Native Controls Mobile Websites Device Native Rendering Hello, JavaFX on iOS and Android GluonFX Plugins to Reduce Complexity The Development Flow The Code iOS Requirements Build the Project Compile Link and Package Run Android Requirements Compile Link and Package Run How Does It Work? Using the Plugin Options bundlesList resourcesList reflectionList jniList runAgent Task/Goal Creating Real Mobile-Looking Apps Different Stylesheets Mobile-Specific Controls The Code Build the Project Summary Chapter 12: JavaFX 23 on Raspberry Pi Intro to Raspberry Pi Getting Started with a Raspberry Pi Initial Kit Raspberry Pi Power Adaptor SD Card Monitor Install SD Raspberry Pi Configuration raspi-config Remote Connection via SSH Java 21 Testing Java 21 Installing JavaFX 23 64 Bits Sample1 Wayland/X11 JavaFX Applications Without Windows Manager Direct Rendering Manager (DRM) Running JavaFX Applications Without Windows Manager Sample2 Gradle Maven Running JavaFX Applications Remotely Java Remote Platform Gradle SSH Plugin Creating JavaFX Native Images Working with Dependencies The DIY In-Car Navigation System Bill of Materials Setup for GPIO GPIO Connections Required GPS Software NMEA Readings GPIO, Serial Port, and Java jSerialComm GPS Service The UI Gluon Maps Afterburner Scene Builder The Application Class Deploy and Test Next Challenge Conclusions Chapter 13: Machine Learning and JavaFX What Is Machine Learning Supervised Learning Unsupervised Learning Artificial Neural Networks Convolutional Neural Networks Eclipse DeepLearning4J: Java API for Neural Networks Training Neural Networks from a JavaFX Application Read an Image from JavaFX to a Neural Network Detecting Objects in a Video Chapter 14: Scientific Applications Using JavaFX JavaFX for Space Exploration JavaFX for Quantum Computing Using JShell Using JShell About ND4J Using ND4J in JShell Using JavaFX in JShell Starting Stand-Alone JavaFX Code JavaFX Applications in JShell JavaFX Libraries in JShell Conclusion Index
دانلود کتاب The Definitive Guide to Modern Java Clients with JavaFX: Cross-Platform Mobile and Cloud Development Updated for JavaFX 21 and 23