diff --git a/src/main/java/koz01/java2/lab06/App.java b/src/main/java/koz01/java2/lab06/App.java index cbbaae2a43289c85372c73267db2ea821f20b614..4dc7590fda01dd80ee6d0e9cb033fcfcd4ea918f 100644 --- a/src/main/java/koz01/java2/lab06/App.java +++ b/src/main/java/koz01/java2/lab06/App.java @@ -1,8 +1,11 @@ package koz01.java2.lab06; +import java.util.ResourceBundle; + import javafx.application.Application; import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; @@ -14,9 +17,10 @@ public class App extends Application { @Override public void start(Stage primaryStage) { try { - - Scene scene = new Scene(FXMLLoader.load(getClass().getResource( - "screen.fxml")), 400, 400); + ResourceBundle rb = ResourceBundle.getBundle("koz01.java2.lab06.Texts"); + Parent parent = FXMLLoader.load(getClass().getResource("screen.fxml"), + rb); + Scene scene = new Scene(parent, 400, 400); scene.getStylesheets().add(getClass().getResource("application.css") .toExternalForm()); primaryStage.setScene(scene); diff --git a/src/main/resources/koz01/java2/lab06/Texts.properties b/src/main/resources/koz01/java2/lab06/Texts.properties new file mode 100644 index 0000000000000000000000000000000000000000..d5248ee5925c95c8093e2e58e56d4bab791f8c8d --- /dev/null +++ b/src/main/resources/koz01/java2/lab06/Texts.properties @@ -0,0 +1,4 @@ +color=Barva +greeting=Ahoj +title=pane +label=Label \ No newline at end of file diff --git a/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties b/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties new file mode 100644 index 0000000000000000000000000000000000000000..b87bce9b489f448535281e77fc6ac8977cdcc344 --- /dev/null +++ b/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties @@ -0,0 +1,4 @@ +color=Barva +greeting=\u010Cau +title=kámo +label=Popisek \ No newline at end of file diff --git a/src/main/resources/koz01/java2/lab06/Texts_en.properties b/src/main/resources/koz01/java2/lab06/Texts_en.properties new file mode 100644 index 0000000000000000000000000000000000000000..2e40f54ea4de5c42d2344a5e9f7445e2a49b786f --- /dev/null +++ b/src/main/resources/koz01/java2/lab06/Texts_en.properties @@ -0,0 +1 @@ +greeting=Hello \ No newline at end of file diff --git a/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties b/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties new file mode 100644 index 0000000000000000000000000000000000000000..579b389a370f6146a953e14809e3c8c7d8c3d7db --- /dev/null +++ b/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties @@ -0,0 +1 @@ +color=colour \ No newline at end of file diff --git a/src/main/resources/koz01/java2/lab06/Texts_en_US.properties b/src/main/resources/koz01/java2/lab06/Texts_en_US.properties new file mode 100644 index 0000000000000000000000000000000000000000..23b00e5c52b15bf729399123472a6892762e5e3c --- /dev/null +++ b/src/main/resources/koz01/java2/lab06/Texts_en_US.properties @@ -0,0 +1 @@ +color=color diff --git a/src/main/resources/koz01/java2/lab06/screen.fxml b/src/main/resources/koz01/java2/lab06/screen.fxml index be5e1b82f699d4b4fdc69fbfed1f404d871e3e6e..ab0ec2b63443a7d2cb9fce1ff8881871f322eb4a 100644 --- a/src/main/resources/koz01/java2/lab06/screen.fxml +++ b/src/main/resources/koz01/java2/lab06/screen.fxml @@ -7,7 +7,7 @@ <AnchorPane prefHeight="484.0" prefWidth="550.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1"> <children> - <Label layoutX="129.0" layoutY="41.0" prefHeight="31.0" prefWidth="292.0" text="Label" /> + <Label layoutX="129.0" layoutY="41.0" prefHeight="31.0" prefWidth="292.0" text="%label" /> <Button layoutX="197.0" layoutY="300.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="156.0" text="Button" /> </children> </AnchorPane> diff --git a/src/test/java/koz01/java2/lab06/DemoLocale.java b/src/test/java/koz01/java2/lab06/DemoLocale.java new file mode 100644 index 0000000000000000000000000000000000000000..43cfb9694f4c6ba02a3489b78c67a89f910442a0 --- /dev/null +++ b/src/test/java/koz01/java2/lab06/DemoLocale.java @@ -0,0 +1,45 @@ +package koz01.java2.lab06; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; +import java.util.Locale; +import java.util.ResourceBundle; + +import org.junit.jupiter.api.Test; + +import lombok.extern.log4j.Log4j2; + +@Log4j2 +public class DemoLocale { + + @Test + public void testLocaleCreation() { + Locale locale = Locale.getDefault(); + log.info("locale = {}", locale); + } + + @Test + public void testResourceBundle() { + ResourceBundle resourceBundle = ResourceBundle.getBundle( + "koz01.java2.lab06.Texts", new Locale("ro", "RO")); + log.info("color = {}", resourceBundle.getObject("color")); + log.info("greeting = {} {}", resourceBundle.getObject("greeting"), + resourceBundle.getObject("title")); + } + + @Test + public void testFormatNumber() { + log.info(String.format(Locale.KOREA, "%f\n", Math.PI)); + + } + + @Test + public void testFormatDate() { + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDate( + FormatStyle.FULL).localizedBy(Locale.CHINA); + log.info("actual date = " + dateTimeFormatter.format(LocalDate.now())); + + + } +} diff --git a/src/test/java/koz01/java2/lab06/DemoNumbers.java b/src/test/java/koz01/java2/lab06/DemoNumbers.java new file mode 100644 index 0000000000000000000000000000000000000000..852fa85988eb26324151dbbc53972c7c9a81ae77 --- /dev/null +++ b/src/test/java/koz01/java2/lab06/DemoNumbers.java @@ -0,0 +1,50 @@ +package koz01.java2.lab06; + +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.junit.jupiter.api.Test; + +import lombok.extern.log4j.Log4j2; + +@Log4j2 +public class DemoNumbers { + + @Test + public void testDouble() { + double val = 0.1; + for (int i = 0; i < 10; i++) { + val += 0.1; + } + log.info("result = {}", val); + } + + @Test + public void testBigDecimal() { + BigDecimal val = BigDecimal.valueOf(1, 1); + BigDecimal result = val; + for (int i = 0; i < 10; i++) { + result = result.add(val); + } + log.info("result = {}", val); + } + + @Test + public void testEquals() { + BigDecimal val1 = BigDecimal.valueOf(1, 1); + BigDecimal val2 = BigDecimal.valueOf(10, 2); + + log.info("val1 = {}, val2 = {}", val1, val2); + log.info("val1.equals(val2) = {}", val1.equals(val2)); + } + + @Test + public void testFactorial() { + BigInteger val = BigInteger.ONE; + final int fact = 20000; + for (int i = 2; i <= fact; i++) { + val = val.multiply(BigInteger.valueOf(i)); + } + log.info("fact({})={}", fact, val); + } +}