这是indexloc提供的服务,不要输入任何密码
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions javafx-2/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.baeldung</groupId>
<artifactId>parent-modules</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>javafx-2</artifactId>
<packaging>jar</packaging>
<name>javafx-2</name>

<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx-maven-plugin.version}</version>
<configuration>
<mainClass>com.baeldung.javafx2.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<javafx.version>19</javafx.version>
<javafx-maven-plugin.version>0.0.8</javafx-maven-plugin.version>
</properties>
</project>
32 changes: 32 additions & 0 deletions javafx-2/src/main/java/com/baeldung/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.baeldung;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import java.io.IOException;

public class Main extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("app-label.fxml"));
Parent root = loader.load();
primaryStage.setScene(new Scene(root));
} catch (IOException e) {
System.err.println("View failed to load: " + e.getMessage());
primaryStage.setScene(new Scene(new Label("UI failed to load")));
}

primaryStage.setTitle("Title goes here");
primaryStage.show();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.baeldung.controller;

import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class ControllerAnnotation {
private final String appName;

@FXML
private Label appNameLabel;

public ControllerAnnotation(String name) {
this.appName = name;
}

@FXML
public void initialize() {
this.appNameLabel.setText(this.appName);
}
}
53 changes: 53 additions & 0 deletions javafx-2/src/main/java/com/baeldung/controller/MainController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.baeldung.controller;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class MainController implements Initializable {

private final Logger logger;
private final MetricsCollector metrics;
private final String appName;

@FXML
private Label statusLabel;

@FXML
private Label appNameLabel;

public MainController(String name) {
this.logger = Logger.getLogger(MainController.class.getName());
this.metrics = new MetricsCollector("dashboard-controller");
this.appName = name;

logger.info("DashboardController created");
metrics.incrementCounter("controller.instances");
}

@Override
public void initialize(URL location, ResourceBundle resources) {
this.appNameLabel.setText(this.appName);
this.statusLabel.setText("App is ready!");
logger.info("UI initialized successfully");
}

// Placeholder classes for demo
static class Logger {
private final String name;
private Logger(String name) { this.name = name; }
public static Logger getLogger(String name) { return new Logger(name); }
public void info(String msg) { System.out.println("[INFO] " + msg); }
}

static class MetricsCollector {
private final String source;
public MetricsCollector(String source) { this.source = source; }
public void incrementCounter(String key) {
System.out.println("Metric incremented: " + key + " (source: " + source + ")");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.baeldung.controller;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class ProfileController implements Initializable {

private final UserService userService;
private User currentUser;

@FXML
private Label usernameLabel;

public ProfileController(UserService userService) {
this.userService = userService;
this.currentUser = userService.getCurrentUser();
}

@Override
public void initialize(URL location, ResourceBundle resources) {
usernameLabel.setText("Welcome, " + this.currentUser.getName());
}

// Placeholder classes for demo
static class UserService {
private final User user;

UserService() {
this.user = new User("Baeldung");
}

public User getCurrentUser() {
return this.user;
}
}

static class User {
private String name;

public User(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
}
8 changes: 8 additions & 0 deletions javafx-2/src/main/resources/app_name_label.fxml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.StackPane?>

<StackPane xmlns:fx="http://javafx.com/fxml" fx:controller="your.package.YourController">
<Label fx:id="appNameLabel" text="Example App" />
</StackPane>
8 changes: 8 additions & 0 deletions javafx-2/src/main/resources/status_label.fxml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.StackPane?>

<StackPane xmlns:fx="http://javafx.com/fxml" fx:controller="your.package.YourController">
<Label fx:id="statusLabel" text="Loading" />
</StackPane>

This file was deleted.

53 changes: 53 additions & 0 deletions javafx/src/main/java/com/baeldung/controller/MainController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.baeldung.controller;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class MainController implements Initializable {

private final Logger logger;
private final MetricsCollector metrics;
private final String appName;

@FXML
private Label statusLabel;

@FXML
private Label appNameLabel;

public MainController(String name) {
this.logger = Logger.getLogger(MainController.class.getName());
this.metrics = new MetricsCollector("dashboard-controller");
this.appName = name;

logger.info("DashboardController created");
metrics.incrementCounter("controller.instances");
}

@Override
public void initialize(URL location, ResourceBundle resources) {
this.appNameLabel.setText(this.appName);
this.statusLabel.setText("App is ready!");
logger.info("UI initialized successfully");
}

// Placeholder classes for demo
static class Logger {
private final String name;
private Logger(String name) { this.name = name; }
public static Logger getLogger(String name) { return new Logger(name); }
public void info(String msg) { System.out.println("[INFO] " + msg); }
}

static class MetricsCollector {
private final String source;
public MetricsCollector(String source) { this.source = source; }
public void incrementCounter(String key) {
System.out.println("Metric incremented: " + key + " (source: " + source + ")");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.baeldung.controller;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class ProfileController implements Initializable {

private final UserService userService;
private User currentUser;

@FXML
private Label usernameLabel;

public ProfileController(UserService userService) {
this.userService = userService;
this.currentUser = userService.getCurrentUser();
}

@Override
public void initialize(URL location, ResourceBundle resources) {
usernameLabel.setText("Welcome, " + this.currentUser.getName());
}

// Placeholder classes for demo
static class UserService {
private final User user;

UserService() {
this.user = new User("Baeldung");
}

public User getCurrentUser() {
return this.user;
}
}

static class User {
private String name;

public User(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
}
8 changes: 8 additions & 0 deletions javafx/src/main/resources/status_label.fxml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.StackPane?>

<StackPane xmlns:fx="http://javafx.com/fxml" fx:controller="your.package.YourController">
<Label fx:id="statusLabel" text="Loading" />
</StackPane>
Loading