JavaFX рдПрдХреАрдХрд░рдг рд░рдгрдиреАрддрд┐рдпрд╛рдБ

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

рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╕рд▓рд╛рд╣рдХрд╛рд░ рдФрд░ рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд▓реЗрдЦрдХ, рдПрдбрдо рдмреАрди рдЬрд╛рд╡рд╛ рдИрдИ рдПрдХреНрд╕рдкрд░реНрдЯ рдЧреНрд░реБрдк 6 рдФрд░ 7, рдИрдЬреЗрдмреА 3. рдПрдХреНрд╕, рдЬреЗрдПрдХреНрд╕рдПрдХреНрд╕-рдЖрд░рдПрд╕, рдФрд░ рдЬреЗрдкреАрдП 2. рдПрдХреНрд╕ рдЬреЗрдПрд╕рдЖрд░ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВред рдЬрд╛рд╡рд╛ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде JDK 1.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ / EJB 1.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬрд╛рд╡рд╛ рдПрд╕рдИ рдФрд░ рдЬрд╛рд╡рд╛ рдИрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ JavaFX, J2EE рдФрд░ Java EE рдкрд░ рдХрдИ рдкреБрд╕реНрддрдХреЛрдВ рдХрд╛ рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ред рд╡рд╣ рд░рд┐рдпрд▓ рд╡рд░реНрд▓реНрдб рдЬрд╛рд╡рд╛ рдИрдИ рдкреИрдЯрд░реНрдиреНрд╕ рдХреЗ рд▓реЗрдЦрдХ рд╣реИрдВ - рд░реАрдерд┐рдВрдХрд┐рдВрдЧ рдмреЗрд╕реНрдЯ рдкреНрд░реИрдХреНрдЯрд┐рд╕реЗрдЬ рдФрд░ рд░рд┐рдпрд▓ рд╡рд░реНрд▓реНрдб рдЬрд╛рд╡рд╛ рдИрдИ рдирд╛рдЗрдЯ рд╣реИрдХреНрд╕ - рдбрд┐рд╕реЗрдХреНрдЯрд┐рдВрдЧ рдж рдмрд┐рдЬрдиреЗрд╕ рдЯрд┐рдпрд░ред рдПрдбрдо рдХреЛ рдЬрд╛рд╡рд╛ рдЪреИрдВрдкрд┐рдпрди, рд╢реАрд░реНрд╖ рдЬрд╛рд╡рд╛ рд░рд╛рдЬрджреВрдд 2012, рдЬрд╛рд╡рд╛рдУрдиреЗ 2009, 2011 рдФрд░ 2012 рд░реЙрдХ рд╕реНрдЯрд╛рд░ рдЕрд╡рд╛рд░реНрдбреНрд╕ рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореНрдпреВрдирд┐рдЦ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдХреА рдЗрдорд╛рд░рдд (http://airhacks.com) рдореЗрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдЬрд╛рд╡рд╛ рдИрдИ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛рдУрдВ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд▓реИрдореНрдмреНрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде, JavaFX рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдП рдПрдХреАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рд╕рдВрдЧрдарди рдореЗрдВ, рдЖрдк рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрд▓рдЧ-рдерд▓рдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рддрд╛ рд╣реИред рд╕реНрд╡рд┐рдВрдЧ рдФрд░ J2EE рдореЗрдВ, рд╕рдВрджреЗрд╢ рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдерд╛ред JavaFX рдФрд░ Java EE 6 рдФрд░ 7 рдиреЗ рд╡рд┐рднрд┐рдиреНрди рдирдИ рд╕рд┐рдВрдХреНрд░реЛрдирд╕, рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕, рдкреБрд╢ рдФрд░ рдкреБрд▓рд┐рдВрдЧ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕реНрдЯреНрд░реИрдЯреЗрдЬреА рдХреА рд╢реБрд░реБрдЖрдд рдХреАред рдпрд╣ рд▓реЗрдЦ рдЬрд╛рд╡рд╛ рдПрдлрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛ рдИрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдПрдХреАрдХрд░рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред
JavaFX Java рд╣реИ
JavaFX Java рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдВ рднреА JavaFX рдкрд░ рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдПрдХреАрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред
рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдИрдкреА рдкрддреЗ, рдмрдВрджрд░рдЧрд╛рд╣ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдлрд╛рдЗрд▓реЗрдВред рдФрд░ рдПрдкреАрдЖрдИ рддрд░реАрдХреЗ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ java.rmi.RemoteException, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддрд┐ рддрд░реНрдХ рдХреЛ рд░реЛрдХрдирд╛ред рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрддрд▓рд╛ рдЖрд╡рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рд░реНрдердХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ GoF рдЕрдбреИрдкреНрдЯрд░ рдкреИрдЯрд░реНрди рд╣реИред

рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдХрд╛ рдкреБрдирд░реБрджреНрдзрд╛рд░
J2EE рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрдЯрд░рдиреЗрдЯ рдЗрдВрдЯрд░-рдУрдЖрд░рдмреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (RMI-IIOP) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд░рд┐рдореЛрдЯ рдореЗрдердб рдЗрдирд╡реЛрдХреЗрд╢рди рдЯреЗрдХреНрдиреЙрд▓реЙрдЬреА рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ XML-рдЖрдзрд╛рд░рд┐рдд RPC (JAX-RPC) рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдФрд░ XML рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдереЗред (JAX-WS) рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рджреЛрдиреЛрдВ рдПрдкреАрдЖрдИ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред рдкреНрд░рд╕реНрддреБрддрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рддрд░реНрдХ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдкреИрдЯрд░реНрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:

тАЬрдкреНрд░рд╕реНрддреБрддрд┐-рд╕реНрддрд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреНрд▓рдЪ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ EJB рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЦреЛрдЬрдирд╛ рдФрд░ рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ред тАЭ

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


рдЪрд┐рддреНрд░ 1


рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз, рдлрд┐рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд░реБрджреНрдз рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрднрд╡ рдПрдХреАрдХрд░рдг рд╣реИред рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдмрди рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдмреИрдХ рдПрдВрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 1 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 1


MethodMonitoring рд╡рд░реНрдЧ рдкреНрд░рд╕реНрддреЛрддрд╛ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред рдЪреВрдВрдХрд┐ getMethodStatistics рд╡рд┐рдзрд┐ рд╕рдВрднрд╡рддрдГ рдЕрд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП UI рд╢реНрд░реЛрддрд╛ рд╡рд┐рдзрд┐ рд╕реЗ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ UI рдХреЛ рдЧреИрд░-рдЬрд┐рдореНрдореЗрджрд╛рд░ рдмрдирд╛ рджреЗрдЧрд╛ред

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдХреАрдХрд░рдг
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, JAX-RS 2.0 API рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓рдмреИрдХ рдореЙрдбрд▓ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, getMethodStatistics рдкрджреНрдзрддрд┐ рдПрдХ рдЕрдиреБрд░реЛрдз рдЖрд░рдВрдн рдХрд░рддреА рд╣реИ рдФрд░ рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреА рд╣реИ (рд╕реВрдЪреА 2 рджреЗрдЦреЗрдВ)ред


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 2


рдХреЙрд▓рдмреИрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ JsonObject рдХреЛ рдПрдХ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ java.util.function.Consumer рдлрд╝рдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрднреА рднреА JavaFX API рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ Java 8 java.util.function.Consumer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ 7 рдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рднреА рдХрд╕реНрдЯрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ рдХреНрд▓рд╛рд╕ рдХреЛ рдХреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, Java 8 рдХреЗ рд╕рд╛рде, JavaFX рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 3 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 3


java.util.function.Consumer рдХреЛ рдореЗрдордиреЗ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред JavaFX рдПрдХ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдЯреВрд▓рдХрд┐рдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрдИ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Java.lang.Runnable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд▓реИрдореНрдмреНрдбрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди Platform.runLater рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЬрд╛рд╡рджреЛрдХ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, тАЬрднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдордп рдкрд░ рдПрдХ рдордирдорд╛рдирд╛ рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдереНрд░реЗрдб рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдирдиреЗрдмрд▓ рдЪрд▓рд╛рдПрдВред рдпрд╣ рд╡рд┐рдзрд┐, рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдереНрд░реЗрдб рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, Runnable рдХреЛ рдИрд╡реЗрдВрдЯ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдлрд╝рдВрдХреНрд╢рди, рдореЗрдердб) рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд╕рднреА Runnable рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдХрддрд╛рд░рдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА Runnable рдЕрдЧрд▓реА RunLater рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ Runnable рдкрд╛рд░рд┐рдд RunLater рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред тАЭ

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо # рд░рдирд▓реЗрдЯрд░ рд╡рд┐рдзрд┐ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐, рдпрд╣ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдЕрд╕рд▓реА рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп
Platform.runLater рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди JavaFX рдиреЛрдбреНрд╕ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рд╢реБрд░реВ рдореЗрдВ javafx.concurrent.Task JavaFX рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдЯрд╛рд╕реНрдХ рдХреНрд▓рд╛рд╕ рд╡рд░реНрдХрд░ рдФрд░ рдЗрд╡реЗрдВрдЯрдЯрд╛рд░реНрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, java.util.concurrent.FutureTask рдХреНрд▓рд╛рд╕ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдЗрд╡реЗрдВрдЯ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреЗ рдмреАрдЪ рдПрдХ рдкреБрд▓ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЯрд╛рд╕реНрдХ рдпрд╛ рддреЛ рд╕реАрдзреЗ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕реЗрд╕реНрдХреЛрд░ рд╕рд░реНрд╡рд┐рд╕ рдореЗрдВ рдЙрддреНрддреАрд░реНрдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд┐рдирд╛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬрд╛рд╡рд╛ рдИрдИ рдПрдкреАрдЖрдИ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдИрдЖрдИрдУрдкреА, рдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 4


рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рд▓реЙрдХ рд╡рд┐рдзрд┐ рдЯрд╛рд╕реНрдХ рдореЗрдВ рд▓рдкреЗрдЯреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рд▓реЙрдХ рд╡рд┐рдзрд┐ рдЯрд╛рд╕реНрдХ рдореЗрдВ рд▓рдкреЗрдЯреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рддреА рд╣реИред


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 5


рдЯрд╛рд╕реНрдХ рдХреНрд▓рд╛рд╕ рд░рдирдиреЗрдмрд▓ рдФрд░ рдлреНрдпреВрдЪрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдпрд╛ рддреЛ рд╕реАрдзреЗ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдПрдХреНрдЬрд┐рдХреНрдпреВрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред JavaFX javafx.concurrent.Service рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдЗрдВрдбреЗрдмрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ UI рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рдХрд╛рд░реНрдп рд╡рд┐рдзрд┐ рд╣реИ:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 6


рд╕реЗрд╡рд╛ рд╕реНрдерд┐рддрд┐, рд╕рд╛рде рд╣реА рдЯрд╛рд╕реНрдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо, JavaFX bindable рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 7


рдЯрд╛рд╕реНрдХ рдХреНрд▓рд╛рд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЗрдирд╣реЗрд░рд┐рдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдирд┐рд░рдВрддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред

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

JavaFX рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдореЗрдВ рдЕрд▓рдЧ рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ HTTP рд╕рдВрдЪрд╛рд░ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, REST рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЕрдХреНрд╕рд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛рдПрдлрд╝рдПрдХреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред REST рдФрд░ JSON HTML5 рдХреНрд▓рд╛рдЗрдВрдЯ, рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рддрд░реАрдХрд╛ рдмрди рд░рд╣рд╛ рд╣реИред
JavaFX рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реАрдзреЗ рд▓рдВрдмреЗ рдорддрджрд╛рди рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ HTML5 рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рдорд╛рди рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдФрд░ рд▓реЙрдиреНрдЧ рдкреЛрд▓рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреЙрд▓ рдХрд╛ рдкреБрдирдГ рдЖрд░рдВрдн рд╣реИред рдбреБрдкреНрд▓реАрдХреЗрдЯ рдорддрджрд╛рди рд╕реАрдзреЗ javafx.concurrent.Service рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рд╡рд╣ рд╕рдлрд▓ рд╣реЛ рдпрд╛ рди рд╣реЛ, рд╕реЗрд╡рд╛ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 8


рдПрдХрддрд╛ рдХреЛ рдзрдХреНрдХрд╛
рдкреБрд╢-рд╕рдВрдЪрд╛рд░ рдПрдХ рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЪрд╛рд░ рд╢реИрд▓реА рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд░реЛрдз рднрд╛рдЧ рдХреЗ рдмрд┐рдирд╛; рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдбреЗрдЯрд╛ рдХреЛ рдкреБрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рд╕рдВрджреЗрд╢ рд╕реЗрд╡рд╛ (рдЬреЗрдПрдордПрд╕), рд╡реЗрдмрд╕реЙрдХреЗрдЯреНрд╕ рдФрд░ рдореЗрдореЛрд░реА рдЧреНрд░рд┐рдб рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рддрдВрддреНрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдЧреНрдирд┐-рд╡рд┐рд╕реНрдореГрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ JavaFX рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
JSR 356 WebSocket рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ EE 7 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ API рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред WebSocket рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдПрдХ рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ UI рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред WebSocket рд╕рдВрджреЗрд╢ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдпрд╛ рдкрд╛рда рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 9 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 9


SnapshotEndpoint рд╡рд░реНрдЧ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ XML рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (JAXB) API рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдЖрд░реНрдХрд╛рдЗрдЯ рдХреНрдпреВрд░реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрдиреИрдкрд╢реЙрдЯ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдПрдиреЛрдЯреЗрдЯ POJO рд╣реИ:


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 10


JSR 356 API рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд░рдордмрджреНрдзрддрд╛ рдФрд░ рдбрд┐рд╕рд░рд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╡рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рднреА рд╕рд┐рд░реНрдл JAXB рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВ; рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ JSON рдпрд╛ рдХреНрд░рдорд╛рдВрдХрдиред SnapshotEndpoint рдПрдХ рд╕рдорд░реНрдкрд┐рдд WebSocket рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ UI рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Platform.runLater рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде, рд╕рдВрджреЗрд╢ WebSocket рд╕реЗ JavaFX рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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


рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 11


рдЕрдм рддрдХ, рд╣рдордиреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ JavaFX рдХреА рдПрдХреАрдХрд░рдг рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдПрдХреАрдХрд░рдг рд╢реИрд▓рд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, JavaFX рдлреАрдЪрд░ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдХреАрдХрд░рдг рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рддрд╛ рд╣реИред
JavaFX рдПрдХреАрдХрд░рдг
Javafx.beans.property.ObjectProperty рдЧреБрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдВрдбреЗрдмрд▓ рд╣реИред рдПрдХ рдЗрдЪреНрдЫреБрдХ рдЧреНрд░рд╛рд╣рдХ рдПрдХ рд╢реНрд░реЛрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╕реАрдзреЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреИрдХ рдХреЙрдкреА рдХреА рдЬрдЧрд╣ рдкрд░ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред (рдЬрд╛рд╡рд╛ рдореИрдЧрдЬрд╝реАрди рд▓реЗрдЦ рдХреЗ "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдлреЙрд░ рдиреИрд░реЛ рдЗрдВрдЯрд░рдлреЗрд╕" рдЦрдВрдб, "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП JavaFX рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рджреЗрдЦреЗрдВред) рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ UI рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред ObjectProperty рдХреЗ рд╕рд╛рде, рдпреВрдЖрдИ рд╕реАрдзреЗ рдПрдХ рдореВрд▓реНрдп рдкрд░ рдмрд╛рдБрдз рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рд╕реАрдзреЗ ObjectProperty рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдмрдВрдзрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрдирд╛рддрд╛ рд╣реИ:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 12


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

рдЖрдЧреЗ рдХреА рдЬрд╡рд╛рдмрджреЗрд╣реА рдФрд░ рд╕рд░рд▓реАрдХрд░рдг
JavaFX UI рдИрд╡реЗрдВрдЯ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╛рд╡рд╛ EE 7 рдПрдкреАрдЖрдИ, рдЬреИрд╕реЗ JAX-RS 2.0, JMS, рдпрд╛ рд╡реЗрдм рдкреЙрдХреЗрдЯреНрд╕ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВред рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЬрд╛рд╡рд╛ рдИрдИ 7 рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЬрд╛рд╡рд╛рдПрдлрдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдпреВрдЖрдИ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдмрд┐рдЬрдиреЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреИрдЯрд░реНрди рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЬрд╛рд╡рд╛ рдИрдИ 7 рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдХреЛ "рд▓реЙрдиреНрдЪ рдФрд░ рднреВрд▓ рдЧрдП" рдореЛрдб рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реИред рдХреЙрд▓рдмреИрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Platform.runLater рдкрджреНрдзрддрд┐ рдореЗрдВ ObjectProperty # рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдЗрдЪреНрдЫреБрдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдкреВрд░реНрдг рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕рдВрдЪрд╛рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ "рд░рди рдФрд░ рднреВрд▓" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рдЗрдо рдореЙрдбрд▓ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреА рдореБрдЦреНрдп рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рд╕реАрдзреЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рджреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЕрдиреБрд░реЛрдз рд╕реАрдзреЗ рдпреВрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрд╛рддрдЪреАрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рддрдЪреАрдд рдХреЗ рдЕрдиреБрднрд╡ (рдпреВрдПрдХреНрд╕) рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд┐рддрдиреА рдорд╣рдВрдЧреА рд╣реИ, рдпреВрдЖрдИ рдХрднреА рднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде JavaFX рдПрдХреАрдХрд░рдг рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо # рд░рдирд▓реИрдЯрд░ javax.swing.SwingUtilities # invokeLater рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░ javafx.concurrent.Service рдХреА рд╕рд╛рдордЧреНрд░реА javax.swing.SwingWorker рдХреЗ рд╕рдорд╛рди рд╣реИред

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

рдЬрд╛рд╡рд╛ рдИрдИ 6 рдФрд░ 7 рдХреЗ рд╕рд░реНрд╡рд░ рднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрд╛рддрдЪреАрдд рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдбрдо рдмрд╛рдпрди рдХреЗ рдорд╛рд╕реНрдЯрд░ рдХреНрд▓рд╛рд╕ рдЬрд╛рд╡рд╛ рдИрдИ: рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдкреИрдЯрд░реНрди рдФрд░ рд╕рдорд╛рдзрд╛рди 3-5 рдЬреВрди рдХреЛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдорд╛рд╕реНрдЯрд░ рд╡рд░реНрдЧ рдФрд░ рднрд╛рдЧреАрджрд╛рд░реА рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВред
рдЫрд╡рд┐

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


All Articles