Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fc8a622ab | ||
|
|
3543f8acd3 | ||
|
|
96a58bcda5 | ||
|
|
34ddd6f26e | ||
|
|
38dc53b484 | ||
|
|
547c036cdb | ||
|
|
a69651447c | ||
|
|
f6189b1bf9 | ||
|
|
d139cbe3c5 | ||
|
|
5b7131febf | ||
|
|
a82844cf35 | ||
|
|
b48325cd63 | ||
|
|
7c807d4b39 | ||
|
|
119436dc3b | ||
|
|
5e60991bda | ||
|
|
5f9150b0f6 | ||
|
|
9a04efd84f | ||
|
|
d23cda4f47 | ||
|
|
54dc098123 | ||
|
|
3147d9f9b7 | ||
|
|
4e968bcd08 | ||
|
|
9a542c6caa | ||
|
|
1eb81ed37e | ||
|
|
3c3c556a19 | ||
|
|
6d5f97767d | ||
|
|
8c264a6100 | ||
|
|
c0684c7501 | ||
|
|
5cc7e57a88 | ||
|
|
2596af27ed | ||
|
|
4c1cc13601 | ||
|
|
f731b73207 | ||
|
|
c74ea3039f | ||
|
|
bc421b87b9 | ||
|
|
dcf02d6565 | ||
|
|
986f43ad6d | ||
|
|
cacb8b154b | ||
|
|
7b5e56d6f7 | ||
|
|
48889c54a9 | ||
|
|
f715cced3d | ||
|
|
fcf17ac57f | ||
|
|
34ae7db92f | ||
|
|
6fcd94e94b | ||
|
|
7ce75c9206 | ||
|
|
deb5e7f3e8 | ||
|
|
bb53425b43 | ||
|
|
573f3e1c70 | ||
|
|
40b81fa8d8 | ||
|
|
5cd92e9e8f | ||
|
|
efd34fb512 | ||
|
|
059c5c8193 | ||
|
|
953c6b16ad | ||
|
|
a50ec834d1 |
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
.idea
|
||||
*.iml
|
||||
**/*.log
|
||||
**/target
|
||||
12
.idea/artifacts/JavaFx_Plus_jar.xml
generated
@@ -1,12 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="JavaFx-Plus:jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/JavaFx_Plus_jar</output-path>
|
||||
<root id="archive" name="JavaFx-Plus.jar">
|
||||
<element id="module-output" name="JavaFx-Plus" />
|
||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/cglib/cglib/3.1/cglib-3.1.jar" path-in-jar="/" />
|
||||
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/org/ow2/asm/asm/4.2/asm-4.2.jar" path-in-jar="/" />
|
||||
<element id="library" level="project" name="Maven: cglib:cglib:3.1" />
|
||||
<element id="library" level="project" name="Maven: org.ow2.asm:asm:4.2" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
16
.idea/compiler.xml
generated
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile name="Maven default annotation processors profile" enabled="true">
|
||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="JavaFx-Plus" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="JavaFx-Plus" target="1.8" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
||||
13
.idea/libraries/Maven__cglib_cglib_3_1.xml
generated
@@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: cglib:cglib:3.1">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/3.1/cglib-3.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/3.1/cglib-3.1-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/3.1/cglib-3.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__junit_junit_4_11.xml
generated
@@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: junit:junit:4.11">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.11/junit-4.11.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.11/junit-4.11-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.11/junit-4.11-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml
generated
@@ -1,13 +0,0 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Maven: org.ow2.asm:asm:4.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/4.2/asm-4.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/4.2/asm-4.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/4.2/asm-4.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
13
.idea/misc.xml
generated
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/JavaFx-Plus.iml" filepath="$PROJECT_DIR$/JavaFx-Plus.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
124
.idea/uiDesigner.xml
generated
@@ -1,124 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
||||
1409
.idea/workspace.xml
generated
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Biubiu
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
1325
README.en.md
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 147 KiB |
BIN
README.en/JavaFX-Plus.png
Normal file
|
After Width: | Height: | Size: 451 KiB |
BIN
README.en/JavaFX-Plus_en.png
Normal file
|
After Width: | Height: | Size: 531 KiB |
BIN
README.en/Resizable_en.gif
Normal file
|
After Width: | Height: | Size: 5.1 MiB |
BIN
README.en/actionDemo/20191210-175409-actionDemo.gif
Normal file
|
After Width: | Height: | Size: 14 MiB |
BIN
README.en/bindhow.gif
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
README.en/controllerConfig.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
README.en/demo1.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
README.en/draggable_en.gif
Normal file
|
After Width: | Height: | Size: 4.8 MiB |
BIN
README.en/expression.gif
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
README.en/expressionV2V.gif
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
README.en/helloWorldDemo.gif
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
README.en/language_demo.gif
Normal file
|
After Width: | Height: | Size: 6.8 MiB |
BIN
README.en/language_demo_en.gif
Normal file
|
After Width: | Height: | Size: 6.8 MiB |
BIN
README.en/lifeDemo/lifeDemo_en.gif
Normal file
|
After Width: | Height: | Size: 12 MiB |
BIN
README.en/lifeDemo/lifeDemo_pkg_en.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
README.en/lifeDemo/life_demo01_en.png
Normal file
|
After Width: | Height: | Size: 193 KiB |
BIN
README.en/lifeDemo/life_demo_en.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
README.en/log_demo_en.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
README.en/modulesAction.gif
Normal file
|
After Width: | Height: | Size: 512 KiB |
BIN
README.en/moveable.gif
Normal file
|
After Width: | Height: | Size: 977 KiB |
BIN
README.en/mqDemo/20191208-194336-signalshow.gif
Normal file
|
After Width: | Height: | Size: 15 MiB |
BIN
README.en/redirectDemo/20191208-125511-not_close.gif
Normal file
|
After Width: | Height: | Size: 5.9 MiB |
BIN
README.en/redirectDemo/20191208-125739-close.gif
Normal file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
README.en/redirect_with_data_en.gif
Normal file
|
After Width: | Height: | Size: 16 MiB |
BIN
README.en/resizeAble.gif
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
README.en/template_en.png
Normal file
|
After Width: | Height: | Size: 526 KiB |
BIN
README.en/template_incude_en.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
README.en/wrap_JavaBean.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
README/JavaFX-Plus-LifeCycle/JavaFX-Plus-LifeCycle_01.png
Normal file
|
After Width: | Height: | Size: 168 KiB |
BIN
README/JavaFX-Plus-LifeCycle/JavaFX-Plus-LifeCycle_02.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
README/JavaFX-Plus.png
Normal file
|
After Width: | Height: | Size: 451 KiB |
BIN
README/JavaFX-Plus_en.png
Normal file
|
After Width: | Height: | Size: 531 KiB |
BIN
README/Resizable.gif
Normal file
|
After Width: | Height: | Size: 5.1 MiB |
BIN
README/actionDemo/20191210-175409-actionDemo.gif
Normal file
|
After Width: | Height: | Size: 14 MiB |
BIN
README/bindhow.gif
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
README/controllerConfig.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
README/demo1.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
README/draggable.gif
Normal file
|
After Width: | Height: | Size: 4.1 MiB |
BIN
README/expression.gif
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
README/expressionV2V.gif
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
README/helloWorldDemo.gif
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
README/image-20200407003220469.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
README/language_demo.gif
Normal file
|
After Width: | Height: | Size: 6.8 MiB |
BIN
README/lifeDemo/lifeDemo.gif
Normal file
|
After Width: | Height: | Size: 12 MiB |
BIN
README/lifeDemo/lifeDemo.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
README/lifeDemo/lifeDemo_pkg.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
README/lifeDemo/life_demo01.png
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
README/log_demo.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
README/modulesAction.gif
Normal file
|
After Width: | Height: | Size: 512 KiB |
BIN
README/moveable.gif
Normal file
|
After Width: | Height: | Size: 977 KiB |
BIN
README/mqDemo/20191208-194336-signalshow.gif
Normal file
|
After Width: | Height: | Size: 15 MiB |
BIN
README/redirectDemo/20191208-125511-not_close.gif
Normal file
|
After Width: | Height: | Size: 5.9 MiB |
BIN
README/redirectDemo/20191208-125739-close.gif
Normal file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
README/redirect_with_data.gif
Normal file
|
After Width: | Height: | Size: 16 MiB |
BIN
README/resizeAble.gif
Normal file
|
After Width: | Height: | Size: 364 KiB |
BIN
README/template.png
Normal file
|
After Width: | Height: | Size: 526 KiB |
BIN
README/template_incude.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
README/wrap_JavaBean.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
doc/JavaFX-Plus-Introduction.xmind
Normal file
BIN
doc/JavaFX-Plus-Introduction_en.xmind
Normal file
BIN
doc/JavaFX-Plus-LifeCycle.pptx
Normal file
BIN
doc/JavaFX-Plus-LifeCycle_en.pptx
Normal file
BIN
javafx-plus-demo/logs/debug/javafxplus.log
Normal file
0
javafx-plus-demo/logs/error/javafxplus.log
Normal file
23
javafx-plus-demo/pom.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?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>
|
||||
<groupId>com.gitee.Biubiuyuyu</groupId>
|
||||
<artifactId>javafx-plus-demo</artifactId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<javafx-plus.version>1.3.0-SNAPSHOT</javafx-plus.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.gitee.Biubiuyuyu</groupId>
|
||||
<artifactId>javafx-plus</artifactId>
|
||||
<version>${javafx-plus.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.edu.scau.biubiusuisui.example.bindDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXScan;
|
||||
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @date 2020/5/1 1:43
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXScan(base = "cn.edu.scau.biubiusuisui.example.bindDemo")
|
||||
public class BindDemo extends Application {
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
FXPlusApplication.start(BindDemo.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package cn.edu.scau.biubiusuisui.example.bindDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXBind;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.*;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @date 2020/5/1 1:43
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXController(path = "fxml/bindDemo/bindDemo.fxml")
|
||||
@FXWindow(title = "bindDemo", mainStage = true)
|
||||
// TODO 待完善
|
||||
public class MainController extends FXBaseController implements Initializable {
|
||||
// View bind to View
|
||||
@FXML
|
||||
@FXBind("text=${inputTF.text}")
|
||||
private Label inputLabel;
|
||||
|
||||
@FXML
|
||||
private TextField inputTF;
|
||||
|
||||
// View bind to a Java Bean
|
||||
@FXML
|
||||
private Label usernameLabel;
|
||||
|
||||
@FXML
|
||||
private Label userPswLabel;
|
||||
|
||||
@FXML
|
||||
private Label ageLabel;
|
||||
|
||||
@FXML
|
||||
private Label enableLabel;
|
||||
|
||||
@FXML
|
||||
private TextField usernameTF;
|
||||
|
||||
@FXML
|
||||
private PasswordField pswPF;
|
||||
|
||||
@FXML
|
||||
private TextField ageTF;
|
||||
|
||||
@FXML
|
||||
private ToggleGroup enableButtons;
|
||||
|
||||
//
|
||||
// @FXData
|
||||
// @FXBind({
|
||||
// "name=${usernameTF.text}",
|
||||
// "password=${pswPF.text}",
|
||||
// "age=${ageTF.text}",
|
||||
// "isEnable=${enableButtons.getSelectedToggle().getUserData()}"
|
||||
// })
|
||||
// private User user = new User();
|
||||
private UserPropertyEntity user = new UserPropertyEntity();
|
||||
|
||||
// View bind to Expression
|
||||
@FXML
|
||||
private TextField money;
|
||||
|
||||
@FXML
|
||||
@FXBind("text=${@toUs(money.text)}")
|
||||
private Label us;
|
||||
|
||||
@FXML
|
||||
@FXBind("text=${@toJp(money.text)}")
|
||||
private Label jp;
|
||||
|
||||
@FXML
|
||||
@FXBind("text=${@toUk(money.text)}")
|
||||
private Label uk;
|
||||
|
||||
@Override
|
||||
public void initialize(URL location, ResourceBundle resources) {
|
||||
money.setText("0");
|
||||
money.textProperty().addListener(new ChangeListener<String>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
|
||||
if (null == newValue || "".equals(newValue)) {
|
||||
money.setText("0");
|
||||
} else if (!newValue.matches("^[0-9]*$")) {
|
||||
money.setText(oldValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToShowInfo() {
|
||||
RadioButton button = (RadioButton) enableButtons.getSelectedToggle();
|
||||
System.out.println(button.getText());
|
||||
usernameLabel.setText(user.getName());
|
||||
userPswLabel.setText(user.getPassword());
|
||||
ageLabel.setText(Integer.toString(user.getAge()));
|
||||
enableLabel.setText(Boolean.toString(user.getEnable()));
|
||||
}
|
||||
|
||||
public String toUs(String value) {
|
||||
double money = Double.valueOf(value);
|
||||
double percent = 0.1454;
|
||||
return String.valueOf(money * percent);
|
||||
}
|
||||
|
||||
public String toJp(String value) {
|
||||
double money = Double.valueOf(value);
|
||||
double percent = 15.797;
|
||||
return String.valueOf(money * percent);
|
||||
}
|
||||
|
||||
public String toUk(String value) {
|
||||
double money = Double.valueOf(value);
|
||||
double percent = 0.1174;
|
||||
return String.valueOf(money * percent);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package cn.edu.scau.biubiusuisui.example.bindDemo;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description 详细信息
|
||||
* @date 2020/4/6 00:29
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
public class Profile {
|
||||
private String birthday;
|
||||
private String address;
|
||||
private String avatar;
|
||||
|
||||
public String getBirthday() {
|
||||
return birthday;
|
||||
}
|
||||
|
||||
public void setBirthday(String birthday) {
|
||||
this.birthday = birthday;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getAvatar() {
|
||||
return avatar;
|
||||
}
|
||||
|
||||
public void setAvatar(String avatar) {
|
||||
this.avatar = avatar;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package cn.edu.scau.biubiusuisui.example.bindDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXEntity;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXField;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @date 2020/4/5 12:19
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXEntity
|
||||
public class User {
|
||||
@FXField
|
||||
private String name;
|
||||
@FXField
|
||||
private String password;
|
||||
@FXField
|
||||
private Integer age;
|
||||
@FXField
|
||||
private List<Double> scores;
|
||||
@FXField
|
||||
private Double gpa;//平均分
|
||||
@FXField
|
||||
private Profile profile;
|
||||
@FXField
|
||||
private boolean isEnable;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(Integer age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public List<Double> getScores() {
|
||||
return scores;
|
||||
}
|
||||
|
||||
public void addScore(double score) {
|
||||
this.scores.add(score);
|
||||
}
|
||||
|
||||
public Profile getProfile() {
|
||||
return profile;
|
||||
}
|
||||
|
||||
public void setProfile(Profile profile) {
|
||||
this.profile = profile;
|
||||
}
|
||||
|
||||
public boolean isEnable() {
|
||||
return isEnable;
|
||||
}
|
||||
|
||||
public void setEnable(boolean enable) {
|
||||
isEnable = enable;
|
||||
}
|
||||
|
||||
public double getGpa() {
|
||||
double sum = 0;
|
||||
for (double score : scores) {
|
||||
sum += score;
|
||||
}
|
||||
gpa = sum / scores.size();
|
||||
return gpa;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
package cn.edu.scau.biubiusuisui.example.bindDemo;
|
||||
|
||||
import javafx.beans.property.*;
|
||||
import javafx.collections.ObservableList;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description User的JavaFXBean
|
||||
* @date 2020/4/6 14:30
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
public class UserPropertyEntity {
|
||||
private SimpleStringProperty name;
|
||||
private SimpleStringProperty password;
|
||||
private SimpleIntegerProperty age;
|
||||
private SimpleListProperty<Double> scores;
|
||||
private SimpleDoubleProperty gpa;//平均分
|
||||
private SimpleObjectProperty<Profile> profile;
|
||||
private SimpleBooleanProperty enable;
|
||||
|
||||
public String getName() {
|
||||
return name.get();
|
||||
}
|
||||
|
||||
public SimpleStringProperty nameProperty() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name.set(name);
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password.get();
|
||||
}
|
||||
|
||||
public SimpleStringProperty passwordProperty() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password.set(password);
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return age.get();
|
||||
}
|
||||
|
||||
public SimpleIntegerProperty ageProperty() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(int age) {
|
||||
this.age.set(age);
|
||||
}
|
||||
|
||||
public ObservableList<Double> getScores() {
|
||||
return scores.get();
|
||||
}
|
||||
|
||||
public SimpleListProperty<Double> scoresProperty() {
|
||||
return scores;
|
||||
}
|
||||
|
||||
public void setScores(ObservableList<Double> scores) {
|
||||
this.scores.set(scores);
|
||||
}
|
||||
|
||||
public double getGpa() {
|
||||
return gpa.get();
|
||||
}
|
||||
|
||||
public SimpleDoubleProperty gpaProperty() {
|
||||
return gpa;
|
||||
}
|
||||
|
||||
public void setGpa(double gpa) {
|
||||
this.gpa.set(gpa);
|
||||
}
|
||||
|
||||
public Profile getProfile() {
|
||||
return profile.get();
|
||||
}
|
||||
|
||||
public SimpleObjectProperty<Profile> profileProperty() {
|
||||
return profile;
|
||||
}
|
||||
|
||||
public void setProfile(Profile profile) {
|
||||
this.profile.set(profile);
|
||||
}
|
||||
|
||||
public boolean getEnable() {
|
||||
return enable.get();
|
||||
}
|
||||
|
||||
public SimpleBooleanProperty enableProperty() {
|
||||
return enable;
|
||||
}
|
||||
|
||||
public void setEnable(boolean enable) {
|
||||
this.enable.set(enable);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package cn.edu.scau.biubiusuisui.example.firstDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXScan;
|
||||
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @author suisui
|
||||
* @version 1.0
|
||||
* @description 第一个示例
|
||||
* @date 2020/1/1 23:06
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXScan(base = {"cn.edu.scau.biubiusuisui.example.firstDemo"}) //会扫描带FXController和FXEntity的类进行初始化
|
||||
public class FirstDemo extends Application {
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
FXPlusApplication.start(FirstDemo.class); //其他配置和JavaFX相同,这里要调用FXPlusAppcalition的start方法,开始FX-plus加强
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package cn.edu.scau.biubiusuisui.example.firstDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusContext;
|
||||
import cn.edu.scau.biubiusuisui.factory.FXEntityFactory;
|
||||
import javafx.beans.property.Property;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ListView;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @author suisui
|
||||
* @version 1.0
|
||||
* @description 示例的主窗口
|
||||
* @date 2020/1/1 23:06
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXController(path = "fxml/firstDemo/firstDemo.fxml")
|
||||
@FXWindow(title = "firstDemo", mainStage = true)
|
||||
public class MainController extends FXBaseController implements Initializable {
|
||||
|
||||
@FXML
|
||||
private Button addHelloButton;
|
||||
@FXML
|
||||
private Button deleteHelloButton;
|
||||
|
||||
@FXML
|
||||
private ListView<String> list;
|
||||
|
||||
private Student student;
|
||||
|
||||
@FXML
|
||||
void addWord(ActionEvent event) {
|
||||
student.addList("hello");
|
||||
}
|
||||
|
||||
@FXML
|
||||
void delWord(ActionEvent event) {
|
||||
student.delList("hello");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(URL location, ResourceBundle resources) {
|
||||
student = (Student) FXEntityFactory.wrapFXBean(Student.class); // 从工厂中拿到将JavaBean转换得到的JavaFXBean
|
||||
Property listProperty = FXPlusContext.getEntityPropertyByName(student, "list");
|
||||
list.itemsProperty().bind(listProperty);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package cn.edu.scau.biubiusuisui.example.firstDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXEntity;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXField;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.0
|
||||
* @description
|
||||
* @date 2020/1/1 23:07
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
|
||||
@FXEntity
|
||||
public class Student {
|
||||
|
||||
@FXField //标记该属性是否被生成对应的Property
|
||||
private int age = 0;
|
||||
|
||||
@FXField
|
||||
private List<String> list = new ArrayList<>();
|
||||
|
||||
public void addList(String word) {
|
||||
list.add(word);
|
||||
}
|
||||
|
||||
public void delList(String word) {
|
||||
list.remove(word);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package cn.edu.scau.biubiusuisui.example.langDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXRedirect;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @description 中文界面
|
||||
* @date 2020/5/3 16:23
|
||||
* @since JDK1.8
|
||||
*/
|
||||
@FXWindow(mainStage = true, title = "languageDemo")
|
||||
@FXController(path = "fxml/langDemo/langDemo.fxml", locale = FXPlusLocale.SIMPLIFIED_CHINESE)
|
||||
public class ChineseController extends FXBaseController {
|
||||
private String title = "languageDemo";
|
||||
private int count = 0;
|
||||
|
||||
@FXML
|
||||
public void clickToChinese() {
|
||||
redirect("ChineseController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToEnglish() {
|
||||
redirect("EnglishController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToKorean() {
|
||||
redirect("KoreanController");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试是否setWindowTitle接口
|
||||
*/
|
||||
@FXML
|
||||
public void changeTitleClick() {
|
||||
this.setWindowTitle(this.title + count);
|
||||
count++;
|
||||
}
|
||||
|
||||
@FXRedirect
|
||||
public String redirect(String name) {
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package cn.edu.scau.biubiusuisui.example.langDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXRedirect;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @description 英文界面
|
||||
* @date 2020/5/3 19:54
|
||||
* @since JDK1.8
|
||||
*/
|
||||
@FXWindow(mainStage = false, title = "languageDemo")
|
||||
@FXController(path = "fxml/langDemo/langDemo.fxml", locale = FXPlusLocale.ENGLISH)
|
||||
public class EnglishController extends FXBaseController {
|
||||
private String title = "languageDemo";
|
||||
private int count = 0;
|
||||
|
||||
@FXML
|
||||
public void clickToChinese() {
|
||||
redirect("ChineseController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToEnglish() {
|
||||
redirect("EnglishController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToKorean() {
|
||||
redirect("KoreanController");
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试是否setWindowTitle接口
|
||||
*/
|
||||
@FXML
|
||||
public void changeTitleClick() {
|
||||
this.setWindowTitle(this.title + count);
|
||||
count++;
|
||||
}
|
||||
|
||||
@FXRedirect
|
||||
public String redirect(String name) {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package cn.edu.scau.biubiusuisui.example.langDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXRedirect;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @description 法语界面
|
||||
* @date 2020/5/4 14:01
|
||||
* @since JDK1.8
|
||||
*/
|
||||
@FXWindow(mainStage = false, title = "languageDemo")
|
||||
@FXController(path = "fxml/langDemo/langDemo.fxml", locale = FXPlusLocale.KOREAN)
|
||||
public class KoreanController extends FXBaseController {
|
||||
private String title = "languageDemo";
|
||||
private int count = 0;
|
||||
|
||||
@FXML
|
||||
public void clickToChinese() {
|
||||
redirect("ChineseController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToEnglish() {
|
||||
redirect("EnglishController");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void clickToKorean() {
|
||||
redirect("KoreanController");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 测试是否setWindowTitle接口
|
||||
*/
|
||||
@FXML
|
||||
public void changeTitleClick() {
|
||||
this.setWindowTitle(this.title + count);
|
||||
count++;
|
||||
}
|
||||
|
||||
@FXRedirect
|
||||
public String redirect(String name) {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.edu.scau.biubiusuisui.example.langDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXScan;
|
||||
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @description 测试语言国际化的Demo
|
||||
* @date 2020/5/3 09:57
|
||||
* @since JDK1.8
|
||||
*/
|
||||
@FXScan(base = "cn.edu.scau.biubiusuisui.example.langDemo")
|
||||
public class LanguageDemo extends Application {
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
FXPlusApplication.start(getClass());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package cn.edu.scau.biubiusuisui.example.lifeDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import cn.edu.scau.biubiusuisui.log.FXPlusLogger;
|
||||
import cn.edu.scau.biubiusuisui.log.FXPlusLoggerFactory;
|
||||
import cn.edu.scau.biubiusuisui.log.IFXPlusLogger;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description 弹窗
|
||||
* @date 2020/5/1 13:49
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXWindow(title = "Dialog")
|
||||
@FXController(path = "fxml/lifeDemo/dialog.fxml", locale = FXPlusLocale.SIMPLIFIED_CHINESE)
|
||||
|
||||
public class DialogController extends FXBaseController {
|
||||
private static IFXPlusLogger logger = FXPlusLoggerFactory.getLogger(DialogController.class);
|
||||
|
||||
@Override
|
||||
public void initialize() throws Exception {
|
||||
logger.info("DialogController----initialize");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() throws Exception {
|
||||
logger.info("DialogController----onLoad");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() throws Exception {
|
||||
logger.info("DialogController----onShow");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose() throws Exception {
|
||||
logger.info("DialogController----onClose");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHide() throws Exception {
|
||||
logger.info("DialogController----onHide");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package cn.edu.scau.biubiusuisui.example.lifeDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXScan;
|
||||
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
|
||||
import cn.edu.scau.biubiusuisui.log.FXPlusLoggerFactory;
|
||||
import cn.edu.scau.biubiusuisui.log.IFXPlusLogger;
|
||||
import cn.edu.scau.biubiusuisui.utils.LogUtil;
|
||||
import javafx.application.Application;
|
||||
import javafx.application.Platform;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description 测试生命周期的Demo
|
||||
* @date 2020/5/1 11:50
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXScan(base = "cn.edu.scau.biubiusuisui.example.lifeDemo")
|
||||
public class LifeDemo extends Application {
|
||||
private static IFXPlusLogger logger = FXPlusLoggerFactory.getLogger(LifeDemo.class);
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
logger.info("LifeDemo---start");
|
||||
// Platform.setImplicitExit(false); //设置当关闭最后一个Stage时,JavaFX应用程序不会自动退出
|
||||
FXPlusApplication.start(getClass());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
logger.info("LifeDemo---init");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() throws Exception {
|
||||
logger.info("LifeDemo---stop");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package cn.edu.scau.biubiusuisui.example.lifeDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXRedirect;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import cn.edu.scau.biubiusuisui.log.FXPlusLoggerFactory;
|
||||
import cn.edu.scau.biubiusuisui.log.IFXPlusLogger;
|
||||
import javafx.fxml.FXML;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description 主窗口
|
||||
* @date 2020/5/1 11:53
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXWindow(mainStage = true, title = "lifeDemo", icon = "image/icon.png")
|
||||
@FXController(path = "fxml/lifeDemo/lifeMain.fxml", locale = FXPlusLocale.SIMPLIFIED_CHINESE)
|
||||
public class MainController extends FXBaseController {
|
||||
private static IFXPlusLogger logger = FXPlusLoggerFactory.getLogger(FXBaseController.class);
|
||||
|
||||
@Override
|
||||
public void initialize() throws Exception {
|
||||
logger.info("MainController----initialize");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() throws Exception {
|
||||
logger.info("MainController----onShow");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() throws Exception {
|
||||
logger.info("MainController----onLoad");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose() throws Exception {
|
||||
logger.info("MainController----onClose");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHide() throws Exception {
|
||||
logger.info("MainController----onHide");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void go() {
|
||||
redirectToDialog();
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void goAndClose() {
|
||||
redirectToDialogAndClose();
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗不关闭窗口
|
||||
*/
|
||||
@FXRedirect(close = false)
|
||||
public String redirectToDialog() {
|
||||
return "DialogController";
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗并关闭本窗口
|
||||
*/
|
||||
@FXRedirect()
|
||||
public String redirectToDialogAndClose() {
|
||||
return "DialogController";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package cn.edu.scau.biubiusuisui.example.lifeDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
|
||||
import cn.edu.scau.biubiusuisui.log.FXPlusLoggerFactory;
|
||||
import cn.edu.scau.biubiusuisui.log.IFXPlusLogger;
|
||||
|
||||
/**
|
||||
* @author suisui
|
||||
* @version 1.2
|
||||
* @description 子组件
|
||||
* @date 2020/5/1 13:48
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXController(path = "fxml/lifeDemo/subBar.fxml", locale = FXPlusLocale.SIMPLIFIED_CHINESE)
|
||||
public class SubController extends FXBaseController {
|
||||
private static IFXPlusLogger logger = FXPlusLoggerFactory.getLogger(SubController.class);
|
||||
|
||||
@Override
|
||||
public void initialize() throws Exception {
|
||||
logger.info("SubController----initialize");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() throws Exception {
|
||||
logger.info("SubController----onShow");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() throws Exception {
|
||||
logger.info("SubController----onLoad");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose() throws Exception {
|
||||
logger.info("SubController----onClose");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHide() throws Exception {
|
||||
logger.info("SubController----onHide");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package cn.edu.scau.biubiusuisui.example.listDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXScan;
|
||||
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @version 1.0
|
||||
* @date 2019/7/27 1:43
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXScan(base = "cn.edu.scau.biubiusuisui.example.listDemo")
|
||||
public class ListDemo extends Application {
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
FXPlusApplication.start(getClass());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package cn.edu.scau.biubiusuisui.example.listDemo;
|
||||
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXBind;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXController;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXData;
|
||||
import cn.edu.scau.biubiusuisui.annotation.FXWindow;
|
||||
import cn.edu.scau.biubiusuisui.entity.FXBaseController;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.ListView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @version 1.0
|
||||
* @date 2019/7/27 1:43
|
||||
* @since JavaFX2.0 JDK1.8
|
||||
*/
|
||||
@FXController(path = "fxml/listDemo/listDemo.fxml")
|
||||
@FXWindow(title = "listDemo", mainStage = true)
|
||||
public class MainController extends FXBaseController {
|
||||
|
||||
private static int count = 0;
|
||||
|
||||
@FXData
|
||||
User user = new User();
|
||||
|
||||
@FXML
|
||||
@FXBind("items=${@toList(user.names)}")
|
||||
private ListView<String> userNameListView;
|
||||
|
||||
|
||||
@FXML
|
||||
public void addUserName() {
|
||||
user.addNames("Jack\t" + (count++));
|
||||
}
|
||||
|
||||
public ObservableList toList(List list) {
|
||||
if (list == null) {
|
||||
return null;
|
||||
}
|
||||
return FXCollections.observableList(list);
|
||||
}
|
||||
}
|
||||