рд╢реБрдн рджреЛрдкрд╣рд░, рдЕрднрд┐рднрд╛рд╡рдХ!рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдХрд╛рдлреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦрдВрдбрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдореМрдЬреВрдж рд╣реИред рдХреЛрдИ рдЬреЛрд░ рджреЗрдХрд░ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдореБрдВрд╣ рдкрд░ рдЭрд╛рдЧ рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рджреА рдереА, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЛ рд╡рд╣ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдХреНрд╖рдг рдореЗрдВ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВрдиреЗ рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдгреЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА - рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреИрд╕реЗ рд╕реНрдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ ...
рдмрд╛рджрд▓реЛрдВ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ "рдХреИрд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдпрд╛рджрдЧрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП?" рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реЗрдВред
рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рдореИрдВ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдФрд░ "рдЧреНрд░реЗ" рдЗрдВрдЯрд░рдлреЗрд╕, рдШрдЯрдХреЛрдВ рдХреА рдХрдореА, рдЙрдирдХреЗ "рдбрд░рд╛рд╡рдиреЗ" рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдо рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА рдбреЗрд╡рд▓рдкрд░ рдиреЗ рд╕рдВрднрд╡рддрдГ рднрд░ рдореЗрдВ рдЖ рдЧрдП рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓рддрд╛ рдпрд╛ рдЬрд╡рд╛рдм рдЦреЛрдЬрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ - рдЗрд╕рдХрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЬреНрдЮрд╛рди рдФрд░, рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрдЪреНрдЫрд╛, рдпрд╣ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?
рд╢рд╛рдпрдж рдпрд╣ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ "рдЙрдЪреНрдЪ рдорд╛рдорд▓реЛрдВ" рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рд▓рд╛рдл рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд╡реНрдпрд░реНрде рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВ рдФрд░ рд╕реАрдзреЗ рд╡рд┐рд╖рдп рдХреЗ рдЕрдЧрд▓реЗ рдЕрдзреНрдпрд╛рдп рдкрд░ рдЬрд╛рдПрдВредрддреЛ, рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рд╕реНрд╡рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдЕрд▓рдЧ рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ (рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░), рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рд╡реЗ рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдмрдЯрди (JButton), рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб (JTextField, JPasswordField), рд▓реЗрдмрд▓ (JLabel), рдЯреЗрдХреНрд╕реНрдЯ рдХреНрд╖реЗрддреНрд░ (JTextArea, JEditorPane), рд╕реНрдХреНрд░реЙрд▓ (JScrollBar, JScrollPane), рдЖрджрд┐ рдЬреИрд╕реЗ рдШрдЯрдХ рд╣реИрдВред
"рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдиреНрдпрд╛рд╕" рдореЗрдВ рдЭреВрд▓рд╛ рдЖрдкрдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд╛рдлреНрд╕ (рд▓реБрдХ рдПрдВрдб рдлреАрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЖрдк рдЙрдиреНрд╣реЗрдВ "рд╕реНрд╡рд┐рдВрдЧ рд╕реНрдХрд┐рдиреНрд╕" рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ "рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ" рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП - рдореЗрдЯрд▓ рд▓рд╛рдл (рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рд╢реИрд▓реА, рдирд┐рдореНрдмрд╕) рдПрд▓рдПрдПрдл (рд╕рд┐рд░реНрдл рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реИрд▓реА), рд╕рд┐рд╕реНрдЯрдо рдПрд▓рдПрдПрдл (рдЖрдкрдХреЗ рдУрдПрд╕ рдХреА рд╢реИрд▓реА)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд┐рдЦреЗ рдЧрдП рд▓рд╛рдлреНрд╕ рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕рдЬрд╛рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХ рдореЗрдВ рдПрдХ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрднреА-рдХрднреА - рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрдпрд╛ рд╣реЛрдЧреА, рдпрд╣ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдШрдЯрдХреЛрдВ рдХреЗ рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП LaF рд╕реНрд╡рдпрдВ UI рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рд▓рд╛рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдХреА рд╢реИрд▓реА рдХреЛ рдпреВрдЖрдИ рд╕реЗрдЯ рдХрд░рдХреЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдл (рд╕рд┐рд╕реНрдЯрдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЗ рдпреВрдЖрдИ рдХреЛ рдмрджрд▓ рджреЗрдВред
рдпрд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рдХрд╕реНрдЯрдо LaFs рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫрдЯрд┐рдиреА рд▓рд╛рдл - рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреА рдХреА рдХреНрд▓рд╛рд╕рд┐рдХ рд╢реИрд▓реА рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ
Quaqua LaF - рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реИ
рдкрджрд╛рд░реНрде рдХрд╛ рдХрдВрдж
рд╕рд┐рдВрдереЗрдЯрд┐рдХрд╛ рд▓рд╛рдл
рдорд┐рд╢реНрд░ рдзрд╛рддреБ рдХреА рдвреЗрд░реА
JGoodies
рдПрдХрд╛рдзрд┐рдХ рд╢реИрд▓реА рд╕реЗрдЯ# 1 рд╕реЗрдЯ рдХрд░реЗрдВ - рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╕рд┐рджреНрдз рд▓рд╛рдл рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдПрдХ рд╕рд╛рдЗрдЯ
рд╕реЗрдЯ # 2 - рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдл рдХреА рд╕реВрдЪреА рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдЦ
рд╕реЗрдЯ # 3 - рдПрдХ рдФрд░ рд▓рд╛рдл рд▓реЗрдЦ
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рднреА рд▓рд╛рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдУрдПрд╕ рдХреЗ рддрд╣рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рдХреБрдЫ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд╡реИрдХрд╛ рдПрд▓рдПрдПрдлред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рдШрдЯрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЗрд╡реАрдПрдо рдХреНрд░реИрд╢ рддрдХред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рд╢реИрд▓рд┐рдпрд╛рдБ рдЧреИрд░-рдЗрдЪреНрдЫрд┐рдд рдУрдПрд╕ рдкрд░ рднреА рд╢реБрд░реВ рди рд╣реЛрдВред рдХреБрдЫ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЗ рдХреЗ рддрд╣рдд рдХреБрдЫ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрддреГрддреАрдп-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдзрди рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдКрд░реНрдЬрд╛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рдХреНрд░рдо рдореЗрдВ рдФрд░ рдЕрджреНрдпрддрд┐рдд рд░рд╣реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдЖрдкрдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдорджрдж рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред рдХрднреА-рдХрднреА рдЖрдк рдЙрдирдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рдмрд╕реЗ рд╕рдлрд▓ рднрд╛рдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд▓рд┐рдЦрдиреЗ / рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд▓рд┐рдЦрд╛рд╡рдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЙрдкрд▓рдмреНрдз, рд╕рдорд░реНрдерд┐рдд рдФрд░ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓рд╛рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рдорд╛рдирддрд╛ рд╣реВрдВред рддреЛ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдХрд╛рд╕ рдореМрдЬреВрдж рд╣реИрдВ (рдореИрдВ рдЖрдкрдХреЛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ):
SWT (
рд╕рд╛рдЗрдЯ ) (
рдореИрдиреБрдЕрд▓ / рдбреЙрдХреНрд╕ ) (
рдЙрджрд╛рд╣рд░рдг ) (
рдбрд╛рдЙрдирд▓реЛрдб )
рд▓рд╛рдЗрд╕реЗрдВрд╕: рдИрдкреАрдПрд▓
рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: Windows / Linux / MacOSX / Solaris рдФрд░ рдХреБрдЫ рдЕрдиреНрдп
рдПрд╕рдбрдмреНрд▓реНрдпреВрдЯреА рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рджреЗрд╢реА рдШрдЯрдХреЛрдВ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рдПрд╕рдбрдмреНрд▓реНрдпреВрдЯреА рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рдпрд╣ рдПрдХ )ред
рд╕реНрд╡рд┐рдВрдЧрдПрдХреНрд╕ (
рд╕рд╛рдЗрдЯ ) (
рдореИрдиреБрдЕрд▓ / рдбреЙрдХ ) (
рдбрд╛рдЙрдирд▓реЛрдб )
рд▓рд╛рдЗрд╕реЗрдВрд╕: LGPL 2.1
рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: рд╕рднреА рдЬрд╛рд╡рд╛ рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо
рд╕реНрд╡рд┐рдВрдЧ-рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдлреА рдкреБрд░рд╛рдиреА рдФрд░ рдкреНрд░рд╕рд┐рджреНрдз рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдХреНрд░рдордгрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред
Jide (
рд╕рд╛рдЗрдЯ ) (
рдореИрдиреБрдЕрд▓ / рдбреЙрдХ ) (
рдбрд╛рдЙрдирд▓реЛрдб рдбреЗрдореЛ )
рд▓рд╛рдЗрд╕реЗрдВрд╕: Classpath рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ / GPL
рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: рд╕рднреА рдЬрд╛рд╡рд╛ рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо
рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреА рд╡реНрдпрд╛рдкрдХ рд░реЗрдВрдЬ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реАрд╕рдВрднрд╡рддрдГ рдЖрдк рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрддреНрд╡реЛрдВ (рдлреНрд▓реИрд╢ / рд╡реАрдбрд┐рдпреЛ, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдореЗрд░реЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ -
рдЬрд╛рд╡рд╛рд▓реЗрдпрд░ - рдпрд╣ рдЖрдкрдХреЛ рдПрдордкреА 3 рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдПрдордкреА 3-рд╕реНрдЯреНрд░реАрдо рдЦреЗрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХрд┐рд╕реА рднреА рдореВрд▓ рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдорд╢реАрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред
рдмреЗрд╢рдХ, рдХреБрдЫ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп (рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдФрд░ рдореБрдХреНрдд рджреЛрдиреЛрдВ) рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдпрд╛ рддреЛ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ рдпрд╛ рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рд╣реИрдВред рддреЛ, рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рдХрд┐ рд▓рд╛рдл рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдШрдЯрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ - рдЖрдк рдЕрднреА рднреА рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ - рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреА рдЧрд▓рдд рд╢реИрд▓реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВрдЧреЗ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд╕ рдмрд╛рд░ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рдШрд╛рддрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рддреНрд░реБрдЯрд┐, рд╕рдорд░реНрдерди рд╕реБрд╕реНрдд рджреЗрддрд╛ рд╣реИ ... рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ - рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдПрдХ рдореБрдлреНрдд рдбрд┐рдЬрд╛рдЗрдирд░ рдФрд░ рдХреЛрдб рд▓реЗ рд▓реЛ! ...
рддреЛ, рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЧрд╣рд░реА рд╕рд╛рдВрд╕ рд▓реЗрдВ, рд╕рд╛рдБрд╕ рдЫреЛрдбрд╝реЗрдВ, рд╢рд╛рдВрдд рд╣реЛ рдЬрд╛рдПрдВ - рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдпрд╣ рднреА рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ рдпрд╛ рдпреВрдЖрдИ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛, рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рдХрд╛рдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрдХреЗ рдЬреНрдЮрд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕реАрдорд╛ рднреА рд╣реИ - рдпрд╣ рдХрдм рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХрдм рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ - рдпрд╣ рд╕рдордп, рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдЖрдкрдХрд╛ UI рд▓рд┐рдЦрдирд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓ рдШрдЯрдХ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдорд╛рдирдХ рд╡рд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬреЗ-рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рдпреВрдЖрдИ-рд╡рд░реНрдЧ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╕рднреА рдорд╛рдирдХ рд╕реНрд╡рд┐рдВрдЧ-рдШрдЯрдХ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ, рдмреЗрд╕рд┐рдХ-рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреА рд╢реИрд▓реА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдореИрдВ JSlider рдХреЗ рд▓рд┐рдП UI рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рдмреЗрд╕рд┐рдХрд╕реНрд▓рд╛рдЗрдбрд░рдпреВрдЖрдИ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рдП, рдФрд░ рдореМрдЬреВрджрд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
public class MySliderUI extends BasicSliderUI
{
public static final ImageIcon BG_LEFT_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/bg_left.png" ) );
public static final ImageIcon BG_MID_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/bg_mid.png" ) );
public static final ImageIcon BG_RIGHT_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/bg_right.png" ) );
public static final ImageIcon BG_FILL_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/bg_fill.png" ) );
public static final ImageIcon GRIPPER_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/gripper.png" ) );
public static final ImageIcon GRIPPER_PRESSED_ICON =
new ImageIcon ( MySliderUI. class .getResource ( "icons/gripper_pressed.png" ) );
public MySliderUI ( final JSlider b )
{
super ( b );
//
b.addChangeListener ( new ChangeListener()
{
public void stateChanged ( ChangeEvent e )
{
b.repaint ();
}
} );
b.addMouseListener ( new MouseAdapter()
{
public void mousePressed ( MouseEvent e )
{
b.repaint ();
}
public void mouseReleased ( MouseEvent e )
{
b.repaint ();
}
} );
}
//
protected Dimension getThumbSize ()
{
return new Dimension ( GRIPPER_ICON.getIconWidth (), GRIPPER_ICON.getIconHeight () );
}
//
public void paintThumb ( Graphics g )
{
int positionX = thumbRect.x + thumbRect.width / 2;
int positionY = thumbRect.y + thumbRect.height / 2;
g.drawImage ( isDragging () ? GRIPPER_PRESSED_ICON.getImage () : GRIPPER_ICON.getImage (),
positionX - GRIPPER_ICON.getIconWidth () / 2,
positionY - GRIPPER_ICON.getIconHeight () / 2, null );
}
// ┬л┬╗
public void paintTrack ( Graphics g )
{
if ( slider.getOrientation () == JSlider.HORIZONTAL )
{
//
g.drawImage ( BG_LEFT_ICON.getImage (), trackRect.x,
trackRect.y + trackRect.height / 2 - BG_LEFT_ICON.getIconHeight () / 2, null );
g.drawImage ( BG_MID_ICON.getImage (), trackRect.x + BG_LEFT_ICON.getIconWidth (),
trackRect.y + trackRect.height / 2 - BG_MID_ICON.getIconHeight () / 2,
trackRect.width - BG_LEFT_ICON.getIconWidth () - BG_RIGHT_ICON.getIconWidth (),
BG_MID_ICON.getIconHeight (), null );
g.drawImage ( BG_RIGHT_ICON.getImage (),
trackRect.x + trackRect.width - BG_RIGHT_ICON.getIconWidth (),
trackRect.y + trackRect.height / 2 - BG_RIGHT_ICON.getIconHeight () / 2, null );
//
g.drawImage ( BG_FILL_ICON.getImage (), trackRect.x + 1,
trackRect.y + trackRect.height / 2 - BG_FILL_ICON.getIconHeight () / 2,
thumbRect.x + thumbRect.width / 2 - trackRect.x - BG_LEFT_ICON.getIconWidth (),
BG_FILL_ICON.getIconHeight (), null );
}
else
{
// jar'
}
}
}
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рдмреЗрд╕рд┐рдХ-рдпреВрдЖрдИ рд╡рд░реНрдЧ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
thumbRect - рдлреНрд▓реВ рдЖрдпрдд
trackRect - рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ "рдкрде" рдХреА рдЖрдпрдд
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдбреНрд░реЗрд╕рд┐рдВрдЧ рдмреЗрд╕рд┐рдХ-рдпреВрдЖрдИ рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдбреНрд░реИрдкрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ)ред
рдЗрд╕ UI рдореЗрдВ, рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ рдФрд░ рдХреИрд▓рдХреБрд▓реЗрдЯрдЯреНрд░реИрдХ () рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬреЛ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ "рдкрде" рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЙрдкрд▓рдмреНрдз рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд▓реВ рдФрд░ рдкрде рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рддрдп рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рдмрд╕ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлреНрд▓реВ рдкрде рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред
рддреЛ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ, рд╣рдореЗрдВ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрд▓рд╛рдЗрдбрд░ рдорд┐рд▓рд╛ред рдЕрдм рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА JSlider рдХреЗ рд▓рд┐рдП UI рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ:
JSlider mySlider = new JSlider ();
mySlider.setUI ( new GuiSliderUI ( mySlider ) );
рдФрд░ рд╣рдо рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрдЯрд╛рдЗрд▓рд┐рд╕ рд╕реНрд▓рд╛рдЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдХреЛрдб
рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ (рдпрд╣ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдореВрд▓ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдПрдВ рдЬрд╛рд░ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ)ред
рдмреЗрд╢рдХ, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмреЗрд╕рд┐рдХ-рдпреВрдЖрдИ (BasicButtonUI, BasicTextFieldUI, BasicTableUI, BasicTabbedPaneUI, рдЖрджрд┐) рдХреЗ рдкрд╛рд╕ рдШрдЯрдХ рднрд╛рдЧреЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рдЦрд╝рд╛рд╕рд┐рдпрдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣рд╛рдБ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ JDK рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд╣реИрдВред рдЯрд┐рдкреНрдкрдгреА рдХреА рдФрд░ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред
рдпреВрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдмрд╛рддрдЪреАрдд рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рд╕рднреА рдЬреНрдЮрд╛рдд рдЬреЗ-рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдмреЗрд╕рд┐рдХ-рдпреВрдЖрдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рднрд┐рдиреНрди рдПрд▓рдПрдПрдл рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╡рд┐рдВрдбреЛрдЬрд╕реНрд▓рд╛рдЗрдбрд░рдпреВрдЖрдИ, рдореЗрдЯрд▓рд╕реНрд▓рд╛рдЗрдбрд░рдпреВрдЖрдИ рдФрд░ рдЕрдиреНрдпред рдЖрдорддреМрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд╛рдо рдпрд╛ рдЗрд╕рдХреЗ рдЙрджреНрджреЗрд╢реНрдп (рджреЗрд╢реА рдУрдПрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрд╕реНрдорд╛рдирдХрдВрдкреЛрдиреЗрдВрдЯрдпреВрдЖрдИ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрд▓рдПрдПрдл рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ - рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓рдПрдПрдл рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдпреВрдЖрдИ рдХреЗрд╡рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░реЗ рджреГрд╢реНрдп рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдХреЗрд╡рд▓ рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдЙрдкрдХрд░рдг, рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2 рдбреА рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рджреГрд╢реНрдп рдШрдЯрдХ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА ...
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2 рдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЙрдкрд░реЛрдХреНрдд рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдареАрдХ рдЗрд╕рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдерд╛ рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣рд┐рд╕реНрд╕реЗ рдЦреАрдВрдЪреЗ рдЧрдП рдереЗред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣реИ рдЬреЛ Grahics2D рд╣рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ "рдкреЗрдВрдЯ" (рд╕рд╛рде рд╣реА "рдкреЗрдВрдЯрдХрдВрдкреЛрдиреЗрдВрдЯ", "рдкреНрд░рд┐рдВрдЯ" рдФрд░ рдЕрдиреНрдп) рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрддрд╛ рд╣реИ, рди рдХрд┐ Grahics2D, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рдЗрд╕реЗ Grahics2D рдкрд░ рдбрд╛рд▓рдиреЗ рд╕реЗ рдбрд░ рдирд╣реАрдВ рд╕рдХрддреЗ, рдЕрдЧрд░ рдХреЛрдИ J- рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдШрдЯрдХ рдпрд╛ рдЗрд╕рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реАред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпреЗ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд░рд╛рдиреЗ рднрд╛рдЧреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдЕрд╡рд╢реЗрд╖ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╕реНрд╡рд┐рдВрдЧ рдмрдврд╝реА рдереА рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рд╕рдордп рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рд┐рдВрдЧ рдЖрдВрддрд░рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдХрд┐рдкрд░реА рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╡рд░ рдХреА рдЧрдИ рд╣реИред
рдореИрдВ рддреБрд░рдВрдд рдпрд╣ рднреА рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреБрдЫ рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХрд╛ рджрд╛рдпрд░рд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдпрдж рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рдЕрдЧрд▓реЗ рд╡рд┐рд╖рдпрдЧрдд рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА (рдЗрд╕рдХреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдкрд╛рдардХреЛрдВ рдХреЗ рдмреАрдЪ рд░реБрдЪрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓реЗ, рд╡рд┐рд╖рдп рдкрд░ рд╡рд╛рдкрд╕ ...рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ? Graphics2D рд╣рдореЗрдВ рдХреНрдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рджреЗрддрд╛ рд╣реИ?
рдореИрдВ рдореБрдЦреНрдп рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рджреВрдВрдЧрд╛:
- рдЖрджрд┐рдо рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ (рджреАрд░реНрдШрд╡реГрддреНрдд, рдЖрдпрдд, рдЪрд╛рдк, рд╡рдХреНрд░, рдмрд╣реБрднреБрдЬ рдФрд░ рдЕрдиреНрдп)
- рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ (рдбреНрд░рд╛рдЗрдВрдЧ, рдкрд╛рда рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЧрд┐рдирддреА, рдЖрджрд┐)
- рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ (рдлреЛрдВрдЯ, рд░реЗрдВрдбрд░рд┐рдВрдЧ, рд╕реНрдХреЗрд▓, рдкрд░рд┐рд╡рд░реНрддрди рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ)
- рддреИрдпрд╛рд░ рдЖрдХреГрддрд┐рдпреЛрдВ / рдкреНрд░рдкрддреНрд░реЛрдВ рдХреЛ рднрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдШреВрдордирд╛, рдкреИрдорд╛рдиреЗ, рдХрддрд░рдиреА, рдЕрдиреБрд╡рд╛рдж)
- рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдХреНрд▓рд┐рдк)
- "рд╕рдВрдпреЛрдЬрди" рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ (рд╕рдордЧреНрд░) рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рдкреНрд░рддрд┐рдкрд╛рджрди рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рд╕рдВрдХреЗрдд рджреЗрдирд╛)
- рдкреНрд░рд┐рдВрдЯ рд╡рд┐рдХрд▓реНрдк
рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ - рдЬрдм рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕рдордп рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рднреА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Graphics2D рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рддрд╛рд░реАрдЦ рддрдХ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдпреВрдЖрдИ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬреЗ-рдШрдЯрдХ рдкреЗрдВрдЯ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдзреЗ (рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░) рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ (рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╖рдп рд╣реИ)ред рдЕрдЧрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо paintComponent () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ...
рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ - рд╕рд╛рдордЧреНрд░реА рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░:
JTextField field = new JTextField()
{
private boolean lostFocusOnce = false ;
private boolean incorrect = false ;
{
//
addFocusListener ( new FocusAdapter()
{
public void focusLost ( FocusEvent e )
{
lostFocusOnce = true ;
incorrect = getText ().trim ().equals ( "" );
repaint ();
}
} );
addCaretListener ( new CaretListener()
{
public void caretUpdate ( CaretEvent e )
{
if ( lostFocusOnce )
{
incorrect = getText ().trim ().equals ( "" );
}
}
} );
}
protected void paintComponent ( Graphics g )
{
super.paintComponent ( g );
//
if ( incorrect )
{
Graphics2D g2d = ( Graphics2D ) g;
//
g2d.setRenderingHint ( RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON );
//
Insets insets;
if ( getBorder () == null )
{
insets = new Insets ( 2, 2, 2, 2 );
}
else
{
insets = getBorder ().getBorderInsets ( this );
}
//
GeneralPath gp = new GeneralPath ( GeneralPath.WIND_EVEN_ODD );
gp.moveTo ( insets.left, getHeight () - insets.bottom );
for ( int i = 0; i < getWidth () - insets.right - insets.left; i += 3 )
{
gp.lineTo ( insets.left + i,
getHeight () - insets.bottom - ( ( i / 3 ) % 2 == 1 ? 2 : 0 ) );
}
//
g2d.setPaint ( Color.RED );
g2d.draw ( gp );
}
}
};
рдореБрджреНрд░рдг рдФрд░ рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдлрд╝реЛрдХрд╕ рдЦреЛрдиреЗ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рджреЛрд╣рд░реА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ JTextField рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдЬреЛрдбрд╝ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЛрдб
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рд░реА UI рдпрд╛ рдкреВрд░реНрдг-рд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдШрдЯрдХ рдХрд╛ рддреЗрдЬрд╝реА рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдХрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдШрдЯрдХ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд▓рд╛рдл / рдпреВрдЖрдИ рдорд┐рд▓рддрд╛ рд╣реИ - рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ UI рдХреЗ рд▓рд┐рдП, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ - рдЪрд╛рд╣реЗ рдЙрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛ рдпрд╛ рди рдХрд░рдирд╛ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
рдпрджреНрдпрдкрд┐ рдЖрдк рдЕрдХреНрд╕рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЙрдЬреНрдЬрд╡рд▓ рдФрд░ рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдирдП рдШрдЯрдХреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - рдЖрдк рдорд╛рдирдХ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд░рд╛рдЬреНрдпреЛрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рдкрд░рд┐рд╡рд░реНрддрди рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдЗрд╕ рдмрд╛рд░ рдлрд┐рд░ (рд╣рд╛рдБ, рдЖрдк рдореБрдЭреЗ рдбрдВрдбреЗ рд╕реЗ рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ) рдореИрдВ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рдХреБрд╢рд▓ рд╣рд╛рдереЛрдВ рд╕реЗ рддреИрдпрд╛рд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
8 рдЫрд╡рд┐рдпреЛрдВ 16x16 рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - 4 рдЪреЗрдХрдмреЙрдХреНрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд╛рдЬреНрдп рдФрд░ 4 рдЬреИрдХрдбреЙрд╡ рд░рд╛рдЬреНрдп (5 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╛рдВрдЪрд╡рд╛рдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ):

рдорд╛рдирдХ рдЪреЗрдХрдмреЙрдХреНрд╕, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдирд┐рдореЗрдЯреЗрдб рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдЬреИрдХрдбрд╛рд╡ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
public static List <ImageIcon> BG_STATES = new ArrayList <ImageIcon> ();
public static List <ImageIcon> CHECK_STATES = new ArrayList <ImageIcon> ();
static
{
//
for ( int i = 1; i <= 4; i++ )
{
BG_STATES.add ( new ImageIcon (
MyCheckBox. class .getResource ( "icons/states/" + i + ".png" ) ) );
}
// ""
CHECK_STATES.add ( new ImageIcon (
new BufferedImage ( 16, 16, BufferedImage.TYPE_INT_ARGB ) ) );
//
for ( int i = 1; i <= 4; i++ )
{
CHECK_STATES.add ( new ImageIcon (
MyCheckBox. class .getResource ( "icons/states/c" + i + ".png" ) ) );
}
}
private Map< String , ImageIcon> iconsCache = new HashMap< String , ImageIcon> ();
private synchronized void updateIcon ()
{
//
final String key = bgIcon + "," + checkIcon;
if ( iconsCache.containsKey ( key ) )
{
//
setIcon ( iconsCache. get ( key ) );
}
else
{
//
BufferedImage b = new BufferedImage ( BG_STATES. get ( 0 ).getIconWidth (),
BG_STATES. get ( 0 ).getIconHeight (), BufferedImage.TYPE_INT_ARGB );
Graphics2D g2d = b.createGraphics ();
g2d.drawImage ( BG_STATES. get ( bgIcon ).getImage (), 0, 0,
BG_STATES. get ( bgIcon ).getImageObserver () );
g2d.drawImage ( CHECK_STATES. get ( checkIcon ).getImage (), 0, 0,
CHECK_STATES. get ( checkIcon ).getImageObserver () );
g2d.dispose ();
ImageIcon icon = new ImageIcon ( b );
iconsCache.put ( key, icon );
setIcon ( icon );
}
}
рдпрд╣ рдХрдИ рд░рд╛рдЬреНрдп рд╕рдВрдХреНрд░рдордг рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╣рдо рдЙрдирдХреЗ рдмреАрдЪ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рд╕рдВрдХреНрд░рдордг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

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

рдореИрдВ рдЭреВрда рдирд╣реАрдВ рдмреЛрд▓реВрдВрдЧрд╛, рдЗрд╕ рдпреВрдЖрдИ рдмрдЯрди рдХреЛ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2 рдбреА рдФрд░ рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рд╢реБрджреНрдз рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреА рдорджрдж рдФрд░ рд╕рдВрдХреЗрдд рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕ рдпреВрдЖрдИ рдХреЗ рдкреВрд░реНрдг рдкрд╛рдареНрдпрдХреНрд░рдо рдФрд░ рдбреЗрдореЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2 рдбреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдПрдХ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЪрд╛рд▓реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдмрд╛рдд рд╣реИ - рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдордЧреНрд░реА рджреВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2 рдбреА рдХреЗ рд╕рд╛рде "рд╕рдВрдЪрд╛рд░" рдХреА рдХрд╛рдлреА рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИред
DnD рдФрд░ GlassPane
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ - рдЖрдк рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рднреА рд╣реИрдВред рджреВрд╕рд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдиреЗ рд╕рдВрднрд╡рддрдГ рдЧреНрд▓рд╛рд╕рдкрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рдпрд╛ рдЖрдкрдиреЗ
рдЗрд╕ рдкреНрд░рд╛рдЪреАрди рдЫрд╡рд┐ рдХреЛ рджреЗрдЦрд╛
рд╣реЛрдЧрд╛ (рдЬреЛ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд╡реИрд╕реЗ) рдорд╛рдирдХ рдлрд╝реНрд░реЗрдореЛрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рдкрд░рддреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдХреНрдпреЛрдВ рдпрд╛рдж рдЖрдпрд╛? рдФрд░ рддреЛ рдФрд░, рдбреАрдПрдирдбреА рдФрд░ рдЧреНрд▓рд╛рд╕рдкреИрди рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдХреНрд░рдо рдореЗрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо рдбреАрдПрдирдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ?
рдХреБрдЫ рд╕реНрд╡рд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбреНрд░реЗрдЬ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬреЗрдЯреНрд░реА рдФрд░ рдЬреЗрд▓рд┐рд╕реНрдЯ) рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ - рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╢рдмреНрджреЛрдВ рдХреЛ рд╣рд╡рд╛ рдореЗрдВ рди рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рд▓реЗрдмрд▓ рд╕реЗ рдПрдХ рдбреАрдПрдирдбреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
JLabel label = new JLabel ( " DnD" );
label.setTransferHandler ( new TransferHandler()
{
public int getSourceActions ( JComponent c )
{
return TransferHandler.COPY;
}
public boolean canImport ( TransferSupport support )
{
return false ;
}
protected Transferable createTransferable ( JComponent c )
{
return new StringSelection ( ( ( JLabel ) c ).getText () );
}
} );
label.addMouseListener ( new MouseAdapter()
{
public void mousePressed ( MouseEvent e )
{
if ( SwingUtilities.isLeftMouseButton ( e ) )
{
JComponent c = ( JComponent ) e.getSource ();
TransferHandler handler = c.getTransferHandler ();
handler.exportAsDrag ( c, e, TransferHandler.COPY );
}
}
} );
рдЕрдм рдЗрд╕ рд▓реЗрдмрд▓ рдХреЗ рдкрд╛рда рдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╕реАрдзреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдбреНрд░реЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рда рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - TransferHandler рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдбреНрд░реИрдЧ рдХреЗ рджреМрд░рд╛рди рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреНрдпрд╛ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдбреНрд░реИрдЧ рдХрд░рддреЗ рд╕рдордп рдХрдВрдкреЛрдиреЗрдВрдЯ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдЫреЛрдбрд╝рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реНрд░реЛрддрд╛ рдХреЛ рдлрд╛рдВрд╕реА рджреЗрдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЕрд╡рд╕рд░ рд╣реИ:
DragSourceAdapter dsa = new DragSourceAdapter()
{
public void dragEnter ( DragSourceDragEvent dsde )
{
// -
}
public void dragExit ( DragSourceEvent dse )
{
// -
}
public void dropActionChanged ( DragSourceDragEvent dsde )
{
//
}
public void dragOver ( DragSourceDragEvent dsde )
{
//
}
public void dragMouseMoved ( DragSourceDragEvent dsde )
{
//
}
public void dragDropEnd ( DragSourceDropEvent dsde )
{
//
}
};
DragSource.getDefaultDragSource ().addDragSourceListener ( dsa );
DragSource.getDefaultDragSource ().addDragSourceMotionListener ( dsa );
рдЕрдВрддрд┐рдо рдХреНрд╖рдг рд░рд╣рддрд╛ рд╣реИ - рдЧреНрд▓рд╛рд╕рдкреИрди рдХреА рднреВрдорд┐рдХрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред GlassPane, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░ рдХреА рддрд░рд╣, рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╕реНрдерд┐рддрд┐ / рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдкрд░ рд╕рднреА рд╕реНрд╡рд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред рдпрд╛рдиреА рдпрджрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдХреБрдЫ рднреА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рдкреВрд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдореБрдЦреНрдп рдХрдВрдЯреЗрдирд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╣реАрдВ рднреА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреЛрдИ рднреА рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдкреНрд░рднрд╛рд╡"
рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ - рдЗрд╕ рдкрд░ рдХрдИ рд╕реНрд╡рд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдоред рдЬрдм рдЖрдк рд╡рд┐рдВрдбреЛ рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ "рд╕реНрдкреНрд░реЗрдбрд┐рдВрдЧ" рд╕рд░реНрдХрд▓ рдХрд╛ рдкреНрд░рднрд╛рд╡ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬреЛ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдХреНрдпрд╛ рд╣реИ - рдПрдХ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдвреЗрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛? - рдбреЗрдореЛ рджреЗрдЦреЗрдВ рдФрд░ рдЬрд╛рд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦреЗрдВред
рд╡реИрд╕реЗ, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░реЙрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ - рдЬреЗрдПрдХреНрд╕рд▓реЗрдпрд░ (
рдСрдл рд╕рд╛рдЗрдЯ ) (
рд╡рд┐рд╡рд░рдг # 1 рд╡рд┐рд╡рд░рдг # 2 рд╡рд┐рд╡рд░рдг # 3 )ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд╛рд╡рд╛ рд╕рд╛рдЗрдЯ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдм рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рд╡рд╣ рд╕рдм рдХреБрдЫ рдПрдХрдЬреБрдЯ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдкреВрд░реНрдг рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рд╡рд┐рдВрдбреЛ рдХреЗ рдЕрдВрджрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдбреНрд░реЗрдЬ рдкреИрдирд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛:

рдЬрдм рд▓реЗрдмрд▓ рдХреЗ рдкреАрдЫреЗ рдкреИрдирд▓ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдкреИрдирд▓ рдХреА рдПрдХ рдкрд╛рд░рднрд╛рд╕реА рдкреНрд░рддрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкреИрдирд▓ рдХреЛ рдбреНрд░реИрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк ESC рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рд░рджреНрдж рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб
рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдмреЗрд╢рдХ, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдбреАрдПрдирдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдЫреЛрдЯреЗ рддрд░реАрдХреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдм рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдХреЗ рдмреАрдЪ рдбреНрд░реИрдЧ рдкреИрдирд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
AWTUtilities
рдЪреВрдВрдХрд┐ JDK6 рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ 7ki рд╕реЗ рдХреБрдЫ рднрд╡рд┐рд╖реНрдп рдХреЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рдорджрдж рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдХрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо AWTUtilities рд╕реЗ рдХрдИ рддрд░реАрдХреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
- AWTUtilities.setWindowShape (рд╡рд┐рдВрдбреЛ, рдЖрдХреГрддрд┐) - рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рдВрдбреЛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░ (рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдХ рд╕рд░реНрдХрд▓ рдпрд╛ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдмрд╣реБрднреБрдЬ рд╣реЛ) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рдкрддреНрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд┐рдбрд╝рдХреА рдХреЛ рдореВрд▓ рд╢реИрд▓реА (рд╕реЗрдЯрдВрдбрдХреЛрд░реЗрдЯреЗрдб (рд╕рдЪ)) рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- AWTUtilities.setWindowOpacity (рд╡рд┐рдВрдбреЛ, рдлреНрд▓реЛрдЯ) - рдЖрдкрдХреЛ 0 (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА) рд╕реЗ 1 (рдЕрдкрд╛рд░рджрд░реНрд╢реА) рддрдХ рдЦрд┐рдбрд╝рдХреА рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЦрд┐рдбрд╝рдХреА рдХреЛ рджреЗрд╢реА рд╢реИрд▓реА рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- AWTUtilities.setWindowOpaque (рд╡рд┐рдВрдбреЛ, рдмреВрд▓рд┐рдпрди) - рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреА рд╕рдЬрд╛рд╡рдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рдХреЛрдИ рднреА рдШрдЯрдХ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рд╕рд╣реА рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЦрд┐рдбрд╝рдХреА, рд╕рд╛рде рд╣реА рдкреИрд░рд╛рдЧреНрд░рд╛рдл 1 рдореЗрдВ, рдПрдХ рджреЗрд╢реА рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рд╕рдЬрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╣рдореЗрдВ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдПрдХ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ред рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдХрд┐рд╕реА рднреА рдореБрд╢реНрдХрд┐рд▓ рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЖрд╡реЗрджрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдЫреЗрдж рдмрдирд╛рдПрдВ, рдЦрд┐рдбрд╝рдХреА рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЫрд╛рдпрд╛ рдмрдирд╛рдПрдВ, рдкреЙрдкрдЕрдк рдмрдирд╛рдПрдВ рдЬреЛ рдЕрдЪреНрдЫреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рдЖрджрд┐, рдЖрджрд┐ред
рдЕрдЧрд░ рд╣рдо рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рднреА setWindowShape рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝реЙрд░реНрдо рдХрдбрд╝рд╛рдИ рд╕реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред SetWindowOpaque рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ - рдЦрд┐рдбрд╝рдХреА рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЫрд┐рдкрд╛рдХрд░, рдЖрдк рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдХрд┐рд╕реА рднреА рд╡рд┐рдВрдбреЛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ (рдпрд╣ рдкреЛрд╕реНрдЯ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рд╕реЗ рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ):
рдпрд╣рд╛рдВ рдЖрдк рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡рд░реНрдХрд┐рдВрдЧ рдЬрд╛рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджрд╕ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрд┐рддрд╛рдП (рдЗрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╕рдВрд╡рд╛рдж рдХреЗ рдЕрдВрджрд░ рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП :)ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрди рдирдП рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред
AWTUtilities рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЕрдкреНрд░рд┐рдп рдЫреЛрдЯреА рдЪреАрдЬ рд▓рд┐рдирдХреНрд╕-рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрд╕реНрдерд┐рд░ рдХрд╛рдо рд╣реИред рдпрд╛рдиреА рд╣рд░ рдЬрдЧрд╣ рдирд╣реАрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди JDK рдпрд╛ OS рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИредрдЕрдкрдиреЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдШрдЯрдХ рдмрдирд╛рдирд╛
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ, UI рдФрд░ рдХреБрдЫ "рдЯреНрд╡рд┐рд╕реНрдЯ" рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдмрд╛рдд рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рдШрдЯрдХ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рдЧ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП рдШрдЯрдХ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдВрдмрд╛ рдФрд░ рдердХрд╛рдК рдХрд╛рдо рд╣реИ, рд╕рднреА рдЕрдзрд┐рдХ рддрдм рдЬрдм рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрджрд▓рд╛рд╡ рдкреВрд░реЗ рд╕рд░реНрдХрд┐рдЯ рдХреЛ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдШрдЯрдХ рдХреЛ "рдЦрд░реЛрдВрдЪ рд╕реЗ" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рддреЛ, JComponent рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдирд╛ рдФрд░ рдкреЗрдВрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, JComponent рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдХреИрдирд╡рд╛рд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рд░реЗрдбреА-рдореЗрдб рд╕реНрдЯреИрдгреНрдбрд░реНрдб рдореЗрдердбреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд╛рдпрд░реНрдб рдЗрдореНрдкреНрд░реВрд╡рдореЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдФрд░ рдХреНрдпрд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ) рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдЬреЛ рдХреБрдЫ рдЖрдк рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╡рд╣ рдШрдЯрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡реИрд╕реЗ, рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░, рдЬрдм рд╕реЗ рд╣рдо рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреЛрдИ рднреА рд╡рдВрд╢рдЬ рдФрд░ JComponent рдЦреБрдж рдХрдВрдЯреЗрдирд░ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЕрдиреНрдп рдШрдЯрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдерд╛рдкрд┐рдд рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред рдЗрд╕ рдПрдХ рдореЗрдВ рдкрдбрд╝реЗ рдмрд╛рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рдШрдЯрдХ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ Jcomponent рдХреЗ рдкреЗрдВрдЯ рдХреЗ рддрд░реАрдХреЗ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ ...

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреЗрдВрдЯ () рдкрджреНрдзрддрд┐ рдореЗрдВ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдкреЗрдВрдЯрдХрдВрдкреЛрдиреЗрдВрдЯ, рдкреЗрдВрдЯрдмреЙрд░реНрдбрд░ рдФрд░ рдкреЗрдВрдЯрдЪрд┐рд▓реНрдбреНрд░реЗрдиред рдмреЗрд╢рдХ, рд╡рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдХреБрдЫ "рд╡рд┐рд╢реЗрд╖" рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ред рдЗрди рддреАрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдКрдкрд░ рдХреА рдЫрд╡рд┐ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдПрдХ рд╕реАрдорд╛ рдКрдкрд░ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдКрдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЙрдирдХреА рдкреЗрдВрдЯ () рд╡рд┐рдзрд┐, рдЖрджрд┐ рдХреЛ рднреА рдХрд╣рддреЗ рд╣реИрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдХреВрд▓рди рднреА рд╣реИрдВ рдЬреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛редрдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рд╣реИред рд╣рдореЗрдВ рдорд╛рдЙрд╕ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╣реЙрдЯрдХреА рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЙрдкрдпреБрдХреНрдд рд╢реНрд░реЛрддрд╛рдУрдВ (рдорд╛рдЙрд╕ рд▓рд┐рд╕реНрдЯрдирд░ / рдорд╛рдЙрд╕рдореЛрд╢рди рд▓рд┐рд╕реНрдЯрдирд░ / рдХреА-рд▓рд┐рдЯрдирд░) рдХреЛ рд╕реНрд╡рдпрдВ рдШрдЯрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд╕рдм рдХреБрдЫ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдореИрдВ рдПрдХ рдШрдЯрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдиреЗрддреНрд░рд╣реАрди рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдпрд╣рд╛рдВ рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдШрдЯрдХ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реВрдВрдЧрд╛:
- рд╣рдо рдШрдЯрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЙрд╕ рдкрд░ рд░рдЦреА рдЧрдИ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдЫрд╡рд┐ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╕реАрдорд╛ рдФрд░ рдХреЛрдиреЛрдВ рдореЗрдВ 4 рдкреБрдирд░реНрдЬреАрд╡рди рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░реНрд╡рд┐рдХреНрд░реЗрддрд╛ рдЖрдкрдХреЛ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗрдВрджреНрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ "рд╣рдерд┐рдпрд╛рдирд╛" рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЫрд╡рд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред
- рд╣рдо рдШрдЯрдХ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЫрд╡рд┐ рдЦреБрдж рдФрд░ рдЗрд╕рдХреЗ "рд╕рдВрджрд░реНрдн" рдЕрдВрдХ (рдКрдкрд░реА рдмрд╛рдПрдВ рдФрд░ рдирд┐рдЪрд▓реЗ рдХреЛрдиреЗ)ред рдЗрд╕рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рднреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдФрд░ рдЪрд┐рддреНрд░рдг рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
- рд╣рдо рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреНрдд рд▓рдкреЗрдЯ рд░рд╣реЗ рд╣реИрдВ (рдЕрдзрд┐рдорд╛рдирддрдГ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ) - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо ImageResizeComponent рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, paintComentent () рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо getPreferredSize () рд╡рд┐рдзрд┐ рдХреЛ рднреА рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдШрдЯрдХ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ "рд╡рд╛рдВрдЫрд┐рдд" рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗред
- рд╣рдо рдШрдЯрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдЙрд╕ рдПрдбреЗрдкреНрдЯрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдФрд░ рдЖрдВрджреЛрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред тАФ тАФ , тАФ . , тАФ mouseMoved() .
рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛? рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ "рдмрдЯрди" рднрд╛рдЧреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рдпрд╣ рдЕрднреА рднреА рдЖрд╕рд╛рди рд╣реИ - рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдмрдЯрди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдерд╛ред рдИрд╡реЗрдВрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдЖрдк рдШрдЯрдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдкреБрдирд░реНрд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХрд▓реНрдкрдирд╛ рд╣реИредрдмреЗрд╢рдХ, рдореИрдВрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдЕрдкрдиреЗ рдХрджрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ - рд╡реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдФрд░ рдкреВрд░рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредрдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рд╕реНрд╡рд┐рдВрдЧ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдИ рдЪреАрдЬреЗрдВ рд╕рд╛рд░реНрдердХ рд╣реЛрддреА рд╣реИрдВ - рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЕрд▓рдЧ рдЫреЛрдЯреЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рджреЗ рджреВрдВрдЧрд╛ред- / Event Dispatch ┬л┬╗ . Event Dispatch :
SwingUtilities.invokeLater ( new Runnable()
{
public void run ()
{
//
}
} );
, , listener' (ActionListener/MouseListener .) .
- paint- , .
- тАФ paint , , setEnabled(enabled). paint . ( ). .
- Event Dispatch . SwingUtilities.invokeLater().
- , , . /. , Event Dispatch .
- repaint() ( repaint(Rectangle) тАУ ), repaint Event Dispatch . revalidate() ( Event Dispatch ). updateUI() ( ), , UI UI LaF'.
- рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдПрдХ рдкреВрд░реНрдг рдПрд▓рдПрдПрдл рд╕реНрдерд╛рдкрдирд╛ рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрдЧреА рдФрд░ рдЙрди рдпреВрдЖрдИ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧреА рдЬреЛ рдПрд▓рдПрдПрдл рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рджреГрд╢реНрдп рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рд▓рд╛рдл рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрди рд╕рд░рд▓ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд "рдмреНрд░реЗрдХ" рдпрд╛ рдЧрддрд┐рд░реЛрдз рдХреА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреАредрдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдХреБрдЫ рдФрд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ / рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрдВрдЧреЗредрдкрд░рд┐рдгрд╛рдо
рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕рдВрдпреЛрдЬрди рдХрд░рдирд╛ рдФрд░ рдЕрд▓рдЧ рдХрд░рдирд╛, рдХрд┐рд╕реА рднреА рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЗрд╡рд▓ рдереЛрдбрд╝реА рдХрд▓реНрдкрдирд╛ рджрд┐рдЦрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рдореВрд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреЛрдЬрди рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдорджрдж рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИредрдореИрдВ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╢рд╛рдпрдж рд▓реЗрдЦ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдмрд╣реБрдд рдЬреЛрд░ рд╕реЗ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЕрднреА рднреА рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдпрд╛ рдПрдХ рдкреНрд░рдпреЛрдЬреНрдп рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдЖрдкрдХреЛ рдРрд╕реЗ рдЯреВрд▓ / рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╕реНрд▓рд╛рдЗрдбрд░ / рдмрдЯрди рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдпрд╛ рдШрдЯрдХреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рднреА) рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рдореЗрд╢рд╛ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рдкрд╛рд╕ рд╣реА рд░рд╣рддрд╛ рд╣реИ - рдЬрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИредрдпрд╣рд╛рдБ рдПрдХ "рдмреЛрддрд▓" рдореЗрдВ рд▓реЗрдЦ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдВрдбреЛ рд╕реЗ, рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рд╛рде рд╣реА рдЗрд╕ рдЕрдВрддрд┐рдо "рд╕рд╛рдорд╛рдиреНрдп" рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб редрдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХрдИ рд╕реНрд░реЛрдд рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдВ) рдЬреЛ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ:рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдереАредрдпрджрд┐ рдХреЛрдИ рдЦрд╛рдорд┐рдпрд╛рдВ рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдкрдардиреАрдп рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧрдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж редUpdate1: рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдПрдХ рдирдИ рдЬрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдШрдЯрдХUpdate2: рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдПрдХ рдирдИ рдЬрд╛рд░ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рд╕рдВрд╡рд╛рдж рдХреА рдФрд░ рдлреАрдХрд╛-рдЗрди / рдЫрд┐рдкреЗ рд╣реБрдПUpdate3: рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЖрдо рдЬрд╛рд░ рд╕рдм рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЕрд▓рдЧ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ