рд╣рд╛рдп JavaFX! рдЪрд▓реЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ?

рдкрд░рд┐рдЪрдп


рдЕрднрд┐рд╡рд╛рджрди, рдЦрд╛рдмрд░реЛрд╡рд┐рддреНрд╕ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдЬрд╛рд╡рд╛ - рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирдИ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рддрдХрдиреАрдХ рд▓реЗрдХрд░ рдЖрдпрд╛ рд╣реВрдВред рдореЗрд░реА рдЖрддреНрдорд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЦреАрдВрдЪреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рддрдХрдиреАрдХ рдкрд░ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░ рджреАред рдореБрдЭреЗ рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИ, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рдЧрд╛рдЗрдб рд╣реИрдВред рдореБрдЭреЗ рдЦреБрдж рдХреЛ рд╕рдм рдХреБрдЫ рдкрдврд╝рдирд╛ рдерд╛, рдердХрд╛рдК рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрдврд╝рдирд╛ред
рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдЧрд╛рдЗрдб рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рдЗрд╕ рддрдХрдиреАрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдореЗрдВ "рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ" рдЪрд░рд┐рддреНрд░ рд╣реЛрдЧрд╛ред

рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рдХреЙрдкреАрд░рд╛рдЗрдЯрд░ рдореЗрд░реЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛: рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВред рдореИрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реБрдЖрддреА рднреА рд╣реВрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд╕реНрдорд┐рддрд░реЗрдВрд╕ рдХреЛ рдХреЛрдб рдХреА рдЖрд▓реЛрдЪрдирд╛ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рд╕реБрдиреВрдВрдЧрд╛ рдФрд░ рд▓реЗрдКрдВрдЧрд╛ред

JavaFX рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ



JavaFX рдПрдХ рдХрд╛рдлреА рдпреБрд╡рд╛ рддрдХрдиреАрдХ рд╣реИ, рдЬреЛ рдЬрд╛рдиреА-рдорд╛рдиреА рд╕реНрд╡рд┐рдВрдЧ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдХреЛ рдЖрдХрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реА рдереАред рдЗрд╕рдХреА рдиреАрдВрд╡ рдХреЗ рдмрд╛рдж рд╕реЗ, рдЗрд╕рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рдЖрдП рд╣реИрдВ рдФрд░ рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рд╕реНрдерд┐рд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдореИрдВрдиреЗ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, JavaFX Microsoft рдЙрддреНрдкрд╛рдж рд╕реЗ рдХрд╛рдлреА рдиреАрдЪ рд╣реИред
рдореИрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рджреЛ рдореБрдЦреНрдп рд▓рд╛рднреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рддрд╛ рд╣реВрдВ:


рдпрд╣ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ?


рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ JavaFX рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреА рдмреБрдирд┐рдпрд╛рджреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рднреА рдпрд╣рд╛рдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╛рдж рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдЦ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЧреИрд░-рдорд╛рдирдХ рдЖрдХрд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ ... рдпрд╣реА рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рд╡рд┐рдВрдбреЛ рдорд┐рд▓рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ (рдПрдХ рдХрд╛рдо рдмрдЯрди рдХреЗ рд╕рд╛рде рдХрд╛рд▓реА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрд░рд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рд╣реИ)ред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдорд╛рдЙрд╕ рдмрдЯрди рдХреЗ рдКрдкрд░ рд╣реИ:


рдЯреНрд░реЗрдирд┐рдВрдЧ


рдореИрдВ рдиреЗрдЯрдмреАрдиреНрд╕ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕реБрдВрджрд░ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдорд╛рдирддрд╛ рд╣реВрдВ (рдФрд░ рдпрд╣ рд╕рдм рдореБрдлреНрдд рд╣реИ)ред рдПрд╕рдбреАрдХреЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдиреЗрдЯрдмреАрдиреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рдЬреЛ рд▓реЛрдЧ рдорд╛рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рд╣реИ, рдЬрд┐рд╕реЗ JavaFX Scene Builder рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ NetBeans рдкрд░ рдЬрд╛рдПрдВ, рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ "рдЯреВрд▓реНрд╕" - "рд╡рд┐рдХрд▓реНрдк" рдЪреБрдиреЗрдВ, рдлрд┐рд░ "Java" -> "JavaFX" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣рд╛рдБ рдЖрдк рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рджреГрд╢реНрдп рдмрд┐рд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдм, рд╡рд┐рд╢реЗрд╖ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдлреЙрд░реНрдо рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ


рдЖрдЗрдП рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ "рдлрд╝рд╛рдЗрд▓" -> "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ" рдЪреБрдиреЗрдВред рдкреНрд░рд╕реНрддреБрдд рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ, "JavaFX" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ - "JavaFX рдПрдкреНрд▓рд┐рдХреЗрд╢рди"; рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИред
рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЧ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдХреЛрдб рд╣реИред

рдХреЛрдб
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class TestClass extends Application { /** * ,     .  main()     Java. */ @Override public void start(Stage primaryStage) { //  . Button btn = new Button(); //    . btn.setText("Say 'Hello World'"); //  . btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); //   / . StackPane root = new StackPane(); //    . root.getChildren().add(btn); // .     (      Swing). Scene scene = new Scene(root, 300, 250); //primaryStage -   . //  . primaryStage.setTitle("Hello World!"); //   primaryStage.setScene(scene); primaryStage.show(); } /** * The main() method is ignored in correctly deployed JavaFX application. * main() serves only as fallback in case the application can not be * launched through deployment artifacts, eg, in IDEs with limited FX * support. NetBeans ignores main(). * * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } 


рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ


рдЕрдм рдЪрд▓реЛ рдЕрдзрд┐рдХ рдХрдард┐рди рднрд╛рдЧ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рднреАред рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд▓реЙрдЧрд┐рди рд╡рд┐рдВрдбреЛ рдмрдирд╛рдПрдВред рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ "рдлрд╛рдбрд╝ рджрд┐рдпрд╛", рдЗрд╕рдХрд╛ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдореИрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдорд╡реАрд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
рдЖрд╡рд╢реНрдпрдХ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдкреИрдХреЗрдЬ "рджреГрд╢реНрдп" рдмрдирд╛рдПрдБред рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, "рдирдпрд╛" -> "рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕" рдЪреБрдиреЗрдВред рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдмреБрд▓рд╛рдУ; рдореИрдВ рдЗрд╕реЗ рдПрдВрдЯрд░рд╕реНрдХреНрд░реАрди рдХрд╣реВрдВрдЧрд╛ред
рд╣рдо рдЗрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдореВрд░реНрдд рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдб
 package view; import javafx.application.Application; import javafx.stage.Stage; public class EnterScreen extends Application { @Override public void start(Stage primaryStage) throws Exception { } public static void main(String[] args) { launch(args); } } 



рдЖрдЗрдП рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдПрдВ (рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдиреАрдЪреЗ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛)ред
рдХреЛрдб
 package view; import javafx.application.Application; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; import javafx.stage.Stage; import javafx.stage.StageStyle; public class EnterScreen extends Application { Stage mainStage = null; @Override public void start(Stage primaryStage) throws Exception { mainStage = new Stage(StageStyle.TRANSPARENT); } public static void main(String[] args) { launch(args); } } 



рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рднреА рдЪрд░рдг рдореИрдВ рдПрдХ рд╢реБрд░реБрдЖрдд () рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдКрдВрдЧрд╛ рдФрд░ рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХрд╛ рдХреЛрдб:
рдХреЛрдб
 package view; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.stage.StageStyle; public class EnterScreen extends Application { public Stage mainStage = null; @Override public void start(Stage primaryStage) throws Exception { //      ,         mainStage = new Stage(StageStyle.TRANSPARENT); //   StackPane root = new StackPane(); //screen -  .     . ImageView screen = new ImageView("pict/EnterScreen.png"); //     root.getChildren().add(screen); //   /  AnchorPane anPane = new AnchorPane(); //      root.getChildren().add(anPane); //       TextField login = new TextField("login"); PasswordField password = new PasswordField(); //    login.setPrefSize(179, 24); password.setPrefSize(179, 24); //  :     . //           .   ,    AnchorPane.setLeftAnchor(login,519.0); AnchorPane.setLeftAnchor(password, 519.0); // ,       AnchorPane.setTopAnchor(login, 297.0); AnchorPane.setTopAnchor(password, 347.0); //      anPane.getChildren().add(login); anPane.getChildren().add(password); // .  :  .   :    . :   (   null,    ) Scene scene = new Scene(root, 1024, 768, null); mainStage.setScene(scene); mainStage.show(); } public static void main(String[] args) { launch(args); } } 



"рдЪрд┐рддреНрд░" рдирд╛рдордХ рдПрдХ рдФрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦреЗрдВред
рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдмрдЯрди рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо рджреГрд╢реНрдп рд╡рд┐рдВрдбреЛ рд╣реИрдВред
рджреЛ рдФрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ: "рдирд┐рдпрдВрддреНрд░рдХ" рдФрд░ "рдореЙрдбрд▓"ред рдкрд╣рд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реЛрдВрдЧреЗ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╣реЛрдЧрд╛ред
рдЕрдм рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ (рд╣рдо рд╕рд╣реА рдмрдЯрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдХреЛрдб
 package view; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.stage.StageStyle; public class EnterScreen extends Application { public Stage mainStage = null; @Override public void start(Stage primaryStage) throws Exception { mainStage = new Stage(StageStyle.TRANSPARENT); StackPane root = new StackPane(); ImageView screen = new ImageView("pict/EnterScreen.png"); root.getChildren().add(screen); AnchorPane anPane = new AnchorPane(); root.getChildren().add(anPane); TextField login = new TextField("login"); PasswordField password = new PasswordField(); login.setPrefSize(179, 24); password.setPrefSize(179, 24); AnchorPane.setLeftAnchor(login,519.0); AnchorPane.setLeftAnchor(password, 519.0); AnchorPane.setTopAnchor(login, 297.0); AnchorPane.setTopAnchor(password, 347.0); anPane.getChildren().add(login); anPane.getChildren().add(password); //      (  ) ImageView rightButton = new ImageView("pict/RightButton.png"); //    - rightButton.setOnMouseEntered(new EnterScreenEvents.OnMouseEnterRB()); rightButton.setOnMouseExited(new EnterScreenEvents.OnMouseExitRB()); rightButton.setOnMouseClicked(new EnterScreenEvents.OnMouseClickedRB(this)); //  - AnchorPane.setLeftAnchor(rightButton, 567.0); AnchorPane.setTopAnchor(rightButton, 420.0); // -   anPane.getChildren().add(rightButton); Scene scene = new Scene(root, 1024, 768, null); mainStage.setScene(scene); mainStage.show(); } public static void main(String[] args) { launch(args); } } 



рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХрдХреНрд╖рд╛рдПрдВ рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдирд┐рдпрдВрддреНрд░рдХ рдкреИрдХреЗрдЬ рдореЗрдВ, EnterScreenEvents рд╡рд░реНрдЧ рдмрдирд╛рдПрдБред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рд╕реНрдерд┐рд░ рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВ, рдЬреЛ рд╣реИрдВрдбрд▓рд░ рд╣реЛрдВрдЧреЗред рдпреЗ рд╕рднреА EventHandler рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

рдХреЛрдб
 package controller; import javafx.event.Event; import javafx.event.EventHandler; import javafx.scene.image.ImageView; import view.EnterScreen; public class EnterScreenEvents { public static class OnMouseEntered implements EventHandler{ @Override public void handle(Event event) { ImageView iv = (ImageView) event.getSource(); iv.setImage(resManager.getRightPressedButtonImage()); } } public static class OnMouseExit implements EventHandler{ @Override public void handle(Event event) { ImageView iv = (ImageView) event.getSource(); iv.setImage(resManager.getRightButtonImage()); } } public static class OnMouseClickedRB implements EventHandler{ private EnterScreen ES = null; public OnMouseClickedRB(EnterScreen ES) { this.ES = ES; } @Override public void handle(Event event) { } } } 


рд╣реИрдВрдбрд▓рд░ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдИред рдЕрдм рд╣рдо рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдореЙрдбрд▓ рдореЗрдВ рд╣рдо рдПрдХ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗред "рдореЙрдбрд▓" рдкреИрдХреЗрдЬ рдореЗрдВ "resManager" рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд░реЗрдВ:
рдХреЛрдб
 package model; import javafx.scene.image.Image; public class resManager { public static Image getEnterScreenBackground(){ return new Image("pict/EnterScreen.png"); } public static Image getRightButtonImage(){ return new Image("pict/RightButton.png"); } public static Image getRightPressedButtonImage(){ return new Image("pict/RightPressedButton.png"); } } 


рдЕрдм рдмрдЯрди рдЪрд┐рддреНрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЦрд┐рдбрд╝рдХреА рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреГрд╢реНрдп рдореЗрдВ рдореЙрдбрд▓ рд╕реЗ рд╡рд┐рдзрд┐ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред рдЕрдм рдПрдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХреЗред рдХрдХреНрд╖рд╛ рдореЗрдВ рдХреЛрдб рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
рдХреЛрдб
  public void close() { Platform.runLater(new closing()); } private class closing implements Runnable { @Override public void run() { mainStage.close(); } } 


рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд╛ рдЖрдпреЛрдЬрди рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рдореБрдЭреЗ рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рд╡рд╛рд╣ рдЦрд┐рдбрд╝рдХреА рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЦрд┐рдбрд╝рдХреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ рдЬреЛ рд╡рд┐рдВрдбреЛ рдХреЛ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯреА рдФрд░ рдХрд╕реНрдЯрдо рд▓реЙрдЧрд┐рди рд╡рд┐рдВрдбреЛ рддреИрдпрд╛рд░ рд╣реИред рд╕рдЪ рд╣реИ, рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд▓рд┐рдЦрдирд╛ рдпрд╛ рддреЛ рдЕрдВрддрд╣реАрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрджрдирд╛рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рддреЛ рдореИрдВ рдЪрдХреНрд░ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬреЛ рдЧрд╣рд░реА рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реИрдВ: рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓рд┐рдпреЛрдВ, рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдкреНрд░рднрд╛рд╡ рдФрд░ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдирд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдЧрд▓реА рдмрд╛рд░ рддрдХред

PS> рдмрдЯрди рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЗрдореЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЙрд░реНрдЬ рдЯрд┐рдЦреЛрд▓рд╛рдЬрд╝ (XMAITER) рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред
PSS> рдПрдХ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд▓рд┐рдВрдХ ред

Source: https://habr.com/ru/post/In168073/


All Articles