diff --git a/java/samples/fx/PropetiesFx/build.xml b/java/samples/fx/PropetiesFx/build.xml
new file mode 100644
index 0000000..ac87d3d
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/build.xml
@@ -0,0 +1,53 @@
+
+ Builds, tests, and runs the project PropetiesFx.
+
+
+
diff --git a/java/samples/fx/PropetiesFx/build/built-jar.properties b/java/samples/fx/PropetiesFx/build/built-jar.properties
new file mode 100644
index 0000000..aa39afd
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/build/built-jar.properties
@@ -0,0 +1,4 @@
+#Fri, 10 Feb 2023 21:22:19 +0300
+
+
+C\:\\Users\\denis.LAPTOP-4LI8UQ4O\\OneDrive\\\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b\\NetBeansProjects\\PropetiesFx=
diff --git a/java/samples/fx/PropetiesFx/build/classes/propetiesfx/PropetiesFx.class b/java/samples/fx/PropetiesFx/build/classes/propetiesfx/PropetiesFx.class
new file mode 100644
index 0000000..e9b72b0
Binary files /dev/null and b/java/samples/fx/PropetiesFx/build/classes/propetiesfx/PropetiesFx.class differ
diff --git a/java/samples/fx/PropetiesFx/dist/PropetiesFx.html b/java/samples/fx/PropetiesFx/dist/PropetiesFx.html
new file mode 100644
index 0000000..f7b94bf
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/dist/PropetiesFx.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+Test page for PropetiesFx
+ Webstart: click to launch this app as webstart
+
+
+
+
diff --git a/java/samples/fx/PropetiesFx/dist/PropetiesFx.jar b/java/samples/fx/PropetiesFx/dist/PropetiesFx.jar
new file mode 100644
index 0000000..6ab10e2
Binary files /dev/null and b/java/samples/fx/PropetiesFx/dist/PropetiesFx.jar differ
diff --git a/java/samples/fx/PropetiesFx/dist/PropetiesFx.jnlp b/java/samples/fx/PropetiesFx/dist/PropetiesFx.jnlp
new file mode 100644
index 0000000..94c2aa7
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/dist/PropetiesFx.jnlp
@@ -0,0 +1,18 @@
+
+
+
+ PropetiesFx
+ denis
+ null
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/samples/fx/PropetiesFx/dist/web-files/dtjava.js b/java/samples/fx/PropetiesFx/dist/web-files/dtjava.js
new file mode 100644
index 0000000..b77ecd7
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/dist/web-files/dtjava.js
@@ -0,0 +1,3958 @@
+/*
+ * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+ */
+
+/**
+ The Java Deployment Toolkit is a utility to deploy Java content in
+ the browser as applets or applications using the right version of Java.
+ If needed it can initiate an upgrade of user's system to install required
+ components of Java platform.
+
+ Note that some of the Deployment Toolkit methods may not be fully operational if
+ used before web page body is loaded (because DT native plugins could not be instantiated).
+ If you intend to use it before web page DOM tree is ready then dtjava.js
+ needs to be loaded inside the body element of the page and before use of other DT APIs.
+
+ @module java/deployment_toolkit
+*/
+var dtjava = function() {
+ function notNull(o) {
+ return (o != undefined && o != null);
+ }
+
+ function isDef(fn) {
+ return (fn != null && typeof fn != "undefined");
+ }
+
+ //return true if any of patterns from query list is found in the given string
+ function containsAny(lst, str) {
+ for (var q = 0; q < lst.length; q++) {
+ if (str.indexOf(lst[q]) != -1) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /* Location of static web content - images, javascript files. */
+ var jscodebase = (function () {
+ //
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/samples/fx/PropetiesFx/nbproject/private/configs/______________WebStart.properties b/java/samples/fx/PropetiesFx/nbproject/private/configs/______________WebStart.properties
new file mode 100644
index 0000000..7a1d99d
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/private/configs/______________WebStart.properties
@@ -0,0 +1,2 @@
+# Do not modify this property in this configuration. It can be re-generated.
+javafx.run.as=webstart
diff --git a/java/samples/fx/PropetiesFx/nbproject/private/configs/____________________.properties b/java/samples/fx/PropetiesFx/nbproject/private/configs/____________________.properties
new file mode 100644
index 0000000..7a7b6e4
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/private/configs/____________________.properties
@@ -0,0 +1,2 @@
+# Do not modify this property in this configuration. It can be re-generated.
+javafx.run.as=embedded
diff --git a/java/samples/fx/PropetiesFx/nbproject/private/private.properties b/java/samples/fx/PropetiesFx/nbproject/private/private.properties
new file mode 100644
index 0000000..2221527
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/private/private.properties
@@ -0,0 +1,4 @@
+auxiliary.org-netbeans-modules-projectapi.issue214819_5f_fx_5f_enabled=true
+# \u041d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0437\u0430\u0434\u0430\u0447\u0438 JavaFX Ant
+endorsed.javafx.ant.classpath=.
+user.properties.file=C:\\Users\\denis.LAPTOP-4LI8UQ4O\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
diff --git a/java/samples/fx/PropetiesFx/nbproject/private/private.xml b/java/samples/fx/PropetiesFx/nbproject/private/private.xml
new file mode 100644
index 0000000..dd9aeb0
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/private/private.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ file:/C:/Users/denis.LAPTOP-4LI8UQ4O/OneDrive/Документы/NetBeansProjects/PropetiesFx/src/propetiesfx/PropetiesFx.java
+
+
+
diff --git a/java/samples/fx/PropetiesFx/nbproject/project.properties b/java/samples/fx/PropetiesFx/nbproject/project.properties
new file mode 100644
index 0000000..de2c2e4
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/project.properties
@@ -0,0 +1,113 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processor.options=
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=PropetiesFx
+application.vendor=denis
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+compile.on.save=true
+compile.on.save.unsupported.javafx=true
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/PropetiesFx.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+includes=**
+# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects
+jar.archive.disabled=true
+jar.compress=false
+javac.classpath=\
+ ${javafx.classpath.extension}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.8
+javac.target=1.8
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+javafx.application.implementation.version=1.0
+javafx.binarycss=false
+javafx.classpath.extension=\
+ ${java.home}/lib/javaws.jar:\
+ ${java.home}/lib/deploy.jar:\
+ ${java.home}/lib/plugin.jar
+javafx.deploy.allowoffline=true
+# If true, application update mode is set to 'background', if false, update mode is set to 'eager'
+javafx.deploy.backgroundupdate=false
+javafx.deploy.embedJNLP=true
+javafx.deploy.includeDT=true
+# \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 'true' \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 (\u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0438)
+javafx.disable.concurrent.runs=false
+# \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 'true' \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Run-in-Browser \u0438\u043b\u0438 WebStart
+javafx.enable.concurrent.external.runs=false
+# This is a JavaFX project
+javafx.enabled=true
+javafx.fallback.class=com.javafx.main.NoJavaFXFallback
+# Main class for JavaFX
+javafx.main.class=propetiesfx.PropetiesFx
+javafx.preloader.class=
+# This project does not use Preloader
+javafx.preloader.enabled=false
+javafx.preloader.jar.filename=
+javafx.preloader.jar.path=
+javafx.preloader.project.path=
+javafx.preloader.type=none
+# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs.
+javafx.rebase.libs=false
+javafx.run.height=600
+javafx.run.width=800
+# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects
+jnlp.enabled=false
+# Main class for Java launcher
+main.class=com.javafx.main.Main
+# \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0447\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 Codebase \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f RIA
+manifest.custom.codebase=*
+# \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 Permissions \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b: sandbox, all-permissions)
+manifest.custom.permissions=
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+platform.active=default_platform
+run.classpath=\
+ ${dist.jar}:\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/java/samples/fx/PropetiesFx/nbproject/project.xml b/java/samples/fx/PropetiesFx/nbproject/project.xml
new file mode 100644
index 0000000..42cd191
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/nbproject/project.xml
@@ -0,0 +1,25 @@
+
+
+ org.netbeans.modules.java.j2seproject
+
+
+
+
+
+
+
+
+
+
+
+
+ PropetiesFx
+
+
+
+
+
+
+
+
+
diff --git a/java/samples/fx/PropetiesFx/property.prop b/java/samples/fx/PropetiesFx/property.prop
new file mode 100644
index 0000000..eb81614
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/property.prop
@@ -0,0 +1,4 @@
+#Fri Feb 10 21:22:42 MSK 2023
+db.password=wertjhgfsdfnjyy
+db.user=admin
+db.url=jdbc\:derby\://localhost\:1527/PersonsDB
diff --git a/java/samples/fx/PropetiesFx/src/propetiesfx/PropetiesFx.java b/java/samples/fx/PropetiesFx/src/propetiesfx/PropetiesFx.java
new file mode 100644
index 0000000..ac65c5a
--- /dev/null
+++ b/java/samples/fx/PropetiesFx/src/propetiesfx/PropetiesFx.java
@@ -0,0 +1,125 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package propetiesfx;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import javafx.application.Application;
+import javafx.geometry.Pos;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.ColumnConstraints;
+import javafx.scene.layout.GridPane;
+import javafx.stage.Stage;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javafx.scene.control.Alert;
+
+/**
+ *
+ * @author denis
+ */
+public class PropetiesFx extends Application {
+ private Properties propeties;
+ private TextField dbUrlField;
+ private TextField dbUserField;
+ private TextField dbPasswordField;
+
+ @Override
+ public void start(Stage primaryStage) {
+ propeties = new Properties();
+ File propertyFile = new File("property.prop");
+ try {
+ if(!propertyFile.exists()) propertyFile.createNewFile();
+ }catch(IOException e) {}
+ Label dbUrl = new Label("db.url=");
+ dbUrlField = new TextField();
+ Label dbUser = new Label("db.user=");
+ dbUserField = new TextField();
+ Label dbPassword = new Label("db.password=");
+ dbPasswordField = new TextField();
+ Button read = new Button("Read");
+ read.setOnAction(e -> getProperties(propertyFile));
+ Button save = new Button("Save");
+ save.setOnAction(e -> setProperties(propertyFile));
+
+ GridPane root = new GridPane();
+ root.setAlignment(Pos.CENTER);
+ root.setGridLinesVisible(false);
+ root.getColumnConstraints().add(new ColumnConstraints(100));
+ root.setHgap(5);
+ root.add(dbUrl, 0, 0, 1, 1);
+ root.add(dbUrlField, 1, 0, 3, 1);
+
+ root.add(dbUser, 0, 1, 1, 1);
+ root.add(dbUserField, 1, 1, 3, 1);
+
+ root.add(dbPassword, 0, 2, 1, 1);
+ root.add(dbPasswordField, 1, 2, 3, 1);
+
+ root.add(read, 1, 3, 1, 1);
+ root.add(save, 3, 3, 1, 1);
+
+ Scene scene = new Scene(root, 600, 500);
+
+ primaryStage.setTitle("Properties");
+ primaryStage.setScene(scene);
+ primaryStage.show();
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+ private void getProperties(File propertyFile){
+ try {
+ propeties.load(new FileReader(propertyFile));
+ dbUrlField.setText(propeties.getProperty("db.url"));
+ dbUserField.setText(propeties.getProperty("db.user"));
+ dbPasswordField.setText(propeties.getProperty("db.password"));
+ } catch (IOException ex) {
+ Logger.getLogger(PropetiesFx.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ private void setProperties(File propertyFile){
+ String dbUrl = isValid(dbUrlField.getText()) ? dbUrlField.getText() : propeties.getProperty("db.url");
+ String dbUser = isValid(dbUserField.getText()) ? dbUserField.getText() : propeties.getProperty("db.user");
+ String dbPassword = isValid(dbPasswordField.getText()) ? dbPasswordField.getText() : propeties.getProperty("db.password");
+ try {
+ propeties.setProperty("db.url", dbUrl);
+ propeties.setProperty("db.user", dbUser);
+ propeties.setProperty("db.password", dbPassword);
+ propeties.store(new FileWriter(propertyFile), null);
+ } catch (IOException ex) {
+ Logger.getLogger(PropetiesFx.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ dbUrlField.setText(dbUrl);
+ dbUserField.setText(dbUser);
+ dbPasswordField.setText(dbPassword);
+ }
+
+ private boolean isValid(String text){
+ if(text==null || text.isEmpty()){
+ Alert alert = new Alert(Alert.AlertType.WARNING);
+ alert.setTitle("isValid");
+ alert.setHeaderText("Проверка значения ключа!");
+ alert.setContentText("Значение ключа не соответствует правилам!");
+ alert.showAndWait();
+ return false;
+ }
+ return true;
+ }
+
+}