JavaFX рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛: рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд▓реЙрдиреНрдЪ рд╣реБрдП JavaFX рдЯреЙрд╡рд░ рдбрд┐рдлреЗрдВрд╕ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



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



JavaFX рдХреНрдпреЛрдВ? рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рддрдХрдиреАрдХ рд╕реЗ рдХрднреА рдирд╣реАрдВ рдорд┐рд▓реЗ рд╣реИрдВ, рд╡реЗ рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред





рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рд▓реЗрдХрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рддрдХ



рдпрд╣ рд╕рдм рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкрд░рдд рдкрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЗрд╕реЗ jfx (jfx: element-name) рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдо рджреЗрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдорд╛рдирдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ FXZ рдлрд╝рд╛рдЗрд▓ (JavaFX рднрд╛рд╖рд╛ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ FXZ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдХреЛ рдирд╛рдо рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред



рд╕рджрд┐рд╢ рдЪрд┐рддреНрд░рдг



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рдореЗрдВ 2 рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рд╕рд░реНрдХрд▓, рдЬреЛ рдПрдХ рдкреНрд░рд╛рдгреА рд╣реИ, рдФрд░ рд╕рдбрд╝рдХреЗрдВред



<? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди = "рд╣рд╛рдВ" ?>



<svg рдЪреМрдбрд╝рд╛рдИ = "550px" рдКрдВрдЪрд╛рдИ = "550px" рджреГрд╢реНрдп рдмреЙрдХреНрд╕ = "0 0 1200 400" xmlns = "http://www.w3.org/2000/svg" рд╕рдВрд╕реНрдХрд░рдг = "1.1" >



<g id = "jfx: path" >

<рдкрде d = "M 50 120 L 250 120 A 25, 20 0 0 250 250 L 150 300 A 25 20 0 0 0 150 480 L 340 480"

рднрд░ = "рдХреЛрдИ рдирд╣реАрдВ" рд╕реНрдЯреНрд░реЛрдХ = "рдбрд╛рд░реНрдХрдЧреНрд░реАрди" рд╕реНрдЯреНрд░реЛрдХ-рдЪреМрдбрд╝рд╛рдИ = "20" />

</ g > рд╣реИ



<g id = "jfx: рдкреНрд░рд╛рдгреА" >

<рд╡реГрддреНрдд cx = "150" рд╕рд╛рдЗрдмрд░ = "50" r = "20" рднрд░реЗрдВ = "рдкреАрд▓рд╛" рд╕реНрдЯреНрд░реЛрдХ = "рдирд╛рд░рдВрдЧреА" />

</ g > рд╣реИ



</ svg >

FXZ рдлрд╝рд╛рдЗрд▓



рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

FXD {

рд╕рд╛рдордЧреНрд░реА : [

рд╕рдореВрд╣ {

рдЖрдИрдбреА : "рдкрде"

рд╕рд╛рдордЧреНрд░реА : [

SVGPath {

рд╕рд╛рдордЧреНрд░реА : "рдПрдо 50 120 рдПрд▓ 250 120 рдП 25, 20 0 0 1 250 300 рдПрд▓ 150 300 рдП 25 20 0 0 0 150 480 340 340"

рднрд░ : рдирд▓

рд╕реНрдЯреНрд░реЛрдХ : рд░рдВрдЧ ред DARKGREEN

рд╕реНрдЯреНрд░реЛрдХрд╡рд╛рд░реНрдб : 20.0

}

]

} ,

рд╕рдореВрд╣ {

рдЖрдИрдбреА : "рдкреНрд░рд╛рдгреА"

рд╕рд╛рдордЧреНрд░реА : [

рд╕рд░реНрдХрд▓ {

рд╕реЗрдВрдЯрд░рдПрдХреНрд╕ : 150.0

рдХреЗрдВрджреНрд░ : 50.0

рднрд░реЗрдВ : рд░рдВрдЧ ред рдкреАрд▓рд╛

рддреНрд░рд┐рдЬреНрдпрд╛ : 20.0

рд╕реНрдЯреНрд░реЛрдХ : рд░рдВрдЧ ред рдСрд░реЗрдВрдЬ

}

]

}

]

}







рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ jfx рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдкрд░рдд рдирд╛рдореЛрдВ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



JavaFX рдкреНрд░реЛрдЧреНрд░рд╛рдо



рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЖрдк рдЗрди 2 рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рдЖрдпрд╛рдд javafx.fxdред * ;

рдЖрдпрд╛рдд javafx.stageред * ;

рдЖрдпрд╛рдд javafx.sceneред * ;



def рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ = FXDLoaderред loadContent ( "{__DIR __} graphics.fxz" ) ;



рд╕реНрдЯреЗрдЬ {

рд╢реАрд░реНрд╖рдХ : "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╢реАрд░реНрд╖рдХ"

рджреГрд╢реНрдп : рджреГрд╢реНрдп {

рдЪреМрдбрд╝рд╛рдИ : 550

рдКрдВрдЪрд╛рдИ : 550

рд╕рд╛рдордЧреНрд░реА : [ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред getNode ( "рдкрде" ) , рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред getNode ( "рдкреНрд░рд╛рдгреА" ) ]

}

}



рдПрдиреАрдореЗрд╢рди



рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрде рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╛рдгреА рдХрд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝реВрдВрдЧрд╛ред



рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдореВрд╣ рддрддреНрд╡ рд╕реЗ рд╕реНрд╡рдпрдВ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ PathTransition рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:



рдЖрдпрд╛рдд javafx.fxdред * ;

рдЖрдпрд╛рдд javafx.stageред * ;

рдЖрдпрд╛рдд javafx.sceneред * ;

рдЖрдпрд╛рдд javafx.scene.shapeред * ;

рдЖрдпрд╛рдд javafx.animationред * ;

рдЖрдпрд╛рдд javafx.animation.transitionред * ;



def рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ = FXDLoaderред loadContent ( "{__DIR __} graphics.fxz" ) ;

def рдкреНрд░рд╛рдгреА = рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред рдЧреЗрдЯрдиреЛрдб ( "рдкреНрд░рд╛рдгреА" ) ;

def рдкрде = ( рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред getNode ( "рдкрде" ) рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ ) ред рд╕рд╛рдордЧреНрд░реА [ 0 ] SVGPath рдХреЗ рд░реВрдк рдореЗрдВ ;



рд╕реНрдЯреЗрдЬ {

рд╢реАрд░реНрд╖рдХ : "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╢реАрд░реНрд╖рдХ"

рджреГрд╢реНрдп : рджреГрд╢реНрдп {

рдЪреМрдбрд╝рд╛рдИ : 550

рдКрдВрдЪрд╛рдИ : 550

рд╕рд╛рдордЧреНрд░реА : рд╕рдореВрд╣ {

рд╕реНрдХреЗрд▓рдПрдХреНрд╕ : 0.5

рд╕реНрдХреЗрд▓ : 0.5

рд╕рд╛рдордЧреНрд░реА : [ рдкрде, рдкреНрд░рд╛рдгреА ]

}

}

}



рдкрдердкреНрд░рджрд░реНрд╢рди {

рдЕрд╡рдзрд┐ : 10 рдПрд╕

рдиреЛрдб : рдкреНрд░рд╛рдгреА

рдЗрдВрдЯрд░рдкреЛрд▓рд░ : рдЗрдВрдЯрд░рдкреЛрд▓рд░ред рд░реЗрдЦреАрдп

рдкрде : рдПрдирд┐рдореЗрд╢рдирдкреИрдеред createFromPath ( рдкрде )

} ред рдЦреЗрд▓ ( ) ;

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕рдбрд╝рдХ рд╕реЗ рдкреНрд░рд╛рдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рдФрд░ рдЯреЙрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдгрд┐рдпреЛрдВ рддрдХ рдЧреЛрд▓реЗ рдХреА рдЙрдбрд╝рд╛рди рдХреЛ рдЪреЗрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдлрд┐рд░ JavaFX рдЯреЙрд╡рд░ рд░рдХреНрд╖рд╛ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред




All Articles