Java FX ๊ฐ๋ฐ ํ๊ฒฝ ์ค์น
Java FX & JDK ๋ฒ์
JavaFX ๋ฒ์ | ํ์ํ ์ต์ JDK | ์ง์ ๊ธฐ๊ฐ |
25 (Early Access) | JDK 22 | ๋ฏธ์ |
24 | JDK 22 | 2025๋
3์ ์ถ์ |
21 | JDK 17 | LTS ๋ฒ์ |
17 | JDK 11 | 2026๋
9์๊น์ง |
์ค์นํด์ผ ํ ๊ฒ
1.
JDK ์ค์น
2.
Eclipse ์ค์น
3.
Eclipse MarketPlace - e(fx)clipse ํ์ฅ ํ๋ฌ๊ทธ์ธ ์ค์น
4.
Java FX SDK
5.
Scene Builder
1. JDK 23
2. Eclipse 2022-09
โข
2023-06 ์ดํด๋ฆฝ์ค ์ต์ ๋ฒ์ ์์, fxml ํ์ผ ์์ฑ ์๋๋ ์ด์
File ๋ก ์์ฑํ๊ณ ???.fxml ํ์ฅ์๋ก ๋ง๋ค์ด์ ์ฌ์ฉํด๋ ๋ฌด๊ดํ๋ค.
3. Eclipse MarketPlace - e(fx)clipse ํ์ฅ ํ๋ฌ๊ทธ์ธ ์ค์น
โข
[Help] > [Eclipse Marketplace]
โข
โjavafxโ ๊ฒ์
โข
e(fx)clipse 3.8.0
โข
[install]
4. Java FX SDK
Java FX ํ๋ก์ ํธ ์์ฑ
โข
[New] > Java FX Project
โข
[Window] > [Preferences] > [Java > Build Path > User libraries]
โฆ
๋ค์ด๋ก๋ ๋ฐ์ Java FX(.jar) ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ ์ถ๊ฐ
โฆ
User lib name : Java FX
โข
ํด๋น ํ๋ก์ ํธ > [Build Path] > [lib] > [Add library] > [User library] > [Java FX]
์๋์์ฑ ์๋ ๋,
โข
[Window] > [Preferences]
โข
[Java] > [Editor] > [Content Assist] > [Advanced]
โฆ
Java Proposal ์ฒดํฌ
์ดํด๋ฆฝ์ค JDK ๋ฒ์ ๋ณ๊ฒฝ
JDK ์ค์น ๊ฒฝ๋ก ์ถ๊ฐ
1.
์ดํด๋ฆฝ์ค ์คํ
2.
[Window] โ [Preferences] ์ด๋
3.
[Java] โ [Installed JREs] ์ ํ
4.
[Add] ๋ฒํผ ํด๋ฆญ
5.
Standard VM ์ ํ ํ [Next] ํด๋ฆญ
6.
JDK 23 ์ค์น ๊ฒฝ๋ก ์ง์
โข
์: C:\Program Files\Java\jdk-23
7.
์ด๋ฆ์ "JDK 23" ๋ฑ์ผ๋ก ์ง์ ํ [Finish] ํด๋ฆญ
8.
๊ธฐ๋ณธ JDK๋ก ์ค์ (์ฒดํฌ๋ฐ์ค ์ ํ ํ [Apply and Close])
ํ๋ก์ ํธ๋ณ JDK ๋ณ๊ฒฝ
1.
ํ๋ก์ ํธ ์ฐํด๋ฆญ โ [Properties]
2.
[Java Build Path] โ [Libraries] ํญ ์ด๋
3.
๊ธฐ์กด JRE System Library ์ ๊ฑฐ ํ [Add Library] ํด๋ฆญ
4.
[JRE System Library] ์ ํ ํ [Next]
5.
[Alternate JRE] ์ ํ ํ "JDK 23" ์ง์
6.
[Finish] ํด๋ฆญ ํ [Apply and Close]
5. Scene Builder
์ดํด๋ฆฝ์ค์์ Scene Builder ์ฐ๊ฒฐ
โข
[Window] > [Preferences]
โฆ
Java FX
โฆ
Scene Builder.exe ๊ฒฝ๋ก ์ง์
์์์ฝ๋
// Main.java
package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
stage.setScene(scene);
stage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Java
๋ณต์ฌ
// module-info.java
module JavaFX_Test {
requires javafx.controls;
requires javafx.fxml; // ์ถ๊ฐ
opens application to javafx.graphics, javafx.fxml;
}
Java
๋ณต์ฌ
Main.fxml ํ์ผ ์์ฑ
โข
[New] > [fxml]
Scene Builder ์คํ
1.
Main.fxml [์ฐํด๋ฆญ]
2.
Open with Scene Builder
a.
Preferences ์์ Scene Builder ์ฐ๊ฒฐํด์ผ ์คํ๋จ
// Main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/20.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="193.0" layoutY="70.0" text="์๋
ํ์ธ์">
<font>
<Font size="43.0" />
</font>
</Label>
</children>
</AnchorPane>
Java
๋ณต์ฌ