Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add explanation on fx:root #35

Merged
merged 3 commits into from
Jul 26, 2024
Merged
Changes from 2 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
4 changes: 3 additions & 1 deletion tutorials/javaFxPart4.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@ We will get to that later.
![Controller for MainWindow](images/javafx/MainWindowController.png)

1. Let’s repeat the process for `DialogBox`.
The main difference here is that DialogBox checks `Use fx:root construct` and _does not define a controller class_.
The main difference here is that DialogBox checks `Use fx:root construct` and _does not define a controller class_. Checking this enables the use of the `fx:root` element, allowing you to reference a root element predefined by calling the `setRoot()` method. The controller can be programatically set using the `setController()` method.

More about `fx:root` on the documentation [Introduction to FXML | JavaFX 2.2](https://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#root_elements).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The main difference here is that DialogBox checks `Use fx:root construct` and _does not define a controller class_. Checking this enables the use of the `fx:root` element, allowing you to reference a root element predefined by calling the `setRoot()` method. The controller can be programatically set using the `setController()` method.
More about `fx:root` on the documentation [Introduction to FXML | JavaFX 2.2](https://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#root_elements).
The main difference here is that we tick the checkbox `Use fx:root construct` and _do not define a controller class_. Ticking this enables the use of the `fx:root` element, allowing you to reference a root element predefined by calling the `setRoot()` method. The controller can be programatically set using the `setController()` method.
More about `fx:root` on the documentation [Introduction to FXML | JavaFX 2.2](https://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#root_elements).

Reason: checks can be interpreted as verifies.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can/should we also explain why we do the DialogBox differently? Must we do it this way for DialogBox or we are simply illustrating a different technique?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... by calling the setRoot() method.

It's not clear if you mean this allows you to call the setRoot() method or this has the same effect as calling the setRoot() method.

Copy link
Contributor Author

@JiaXinEu JiaXinEu Jul 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can/should we also explain why we do the DialogBox differently? Must we do it this way for DialogBox or we are simply illustrating a different technique?

This is done differently since DialogBox is a custom component we build that will be reused.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... by calling the setRoot() method.

It's not clear if you mean this allows you to call the setRoot() method or this has the same effect as calling the setRoot() method.

Use of the fx:root element allows us to reference a root element. This root element will be predefined by calling the setRoot() method before we load().


![Settings for DialogBox](images/javafx/DialogBoxController.png)

Expand Down