рдЖрдкрдХрд╛ рд▓реБрдХ рдФрд░ рдлреАрд▓ - рдкрд╛рд░реНрдЯ I рдмрдирд╛рдирд╛

рд╢реБрдн рджреЛрдкрд╣рд░, рдЕрднрд┐рднрд╛рд╡рдХ!

рдХрд╛рдлреА рдХреБрдЫ рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдереЛрдбрд╝рд╛ рдЙрд▓реНрд▓реЗрдЦ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд┐рднрд┐рдиреНрди рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

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

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

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

MyLookAndFeel.java


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

рддреЛ, рд╣рдо рддреИрдпрд╛рд░ BasicLookAndFeel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ LaF рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MyLookAndFeel BasicLookAndFeel рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getDescription ()
{
// рд╡рд┐рд╡рд░рдг LaF
рд╡рд╛рдкрд╕реА "рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╛рд╡рд╛ рд▓реБрдХ рдПрдВрдб рдлреАрд▓" ;
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getName ()
{
// рдирд╛рдо рдПрд▓рдПрдПрдл
рд╡рд╛рдкрд╕реА "MyLookAndFeel" ;
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getID ()
{
// рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдПрд▓рдПрдПрдл
рд╡рд╛рдкрд╕реА getName ();
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди рд╣реИ NativeLookAndFeel ()
{
// рдХреНрдпрд╛ рдпрд╣ рдПрд▓рдПрдПрдл рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ (рдХреНрдпрд╛ рдпрд╣ рдПрдХ рджреЗрд╢реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ)
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди
{
// рдХреНрдпрд╛ рдпрд╣ рдПрд▓рдПрдПрдл рд╡рд░реНрддрдорд╛рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ?
рд╕рдЪ рд▓реМрдЯрдирд╛ ;
}
}

рдЕрдм рдпрд╣ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ "рдЬрд╛рджреВ" рд▓рд╛рдЗрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ LaF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА:
UIManagerред setLookAndFeel ( MyLookAndFeel ред рд╡рд░реНрдЧ ред getCanonicalName () );

рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдорд┐рд▓рддрд╛ рд╣реИ:


рдЗрд╕ рдПрд▓рдПрдПрдл рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкреНрд▓рд╕ рд╣реИ - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ, рдЕрд░реНрдерд╛рдд рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдореИрдХ рдУрдПрд╕ рдкрд░, рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдпрд╣ рд╕реМрдВрджрд░реНрдп рдкреНрд░рд╕рд╛рдзрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ - рдпрд╣реА рд╣рдо рдХрд░реЗрдВрдЧреЗ!

рдШрдЯрдХ рд╕реНрдЯрд╛рдЗрд▓


рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪрд▓реЛ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдПрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдЪрдпрдирд┐рдд рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред

рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдмрдЯрди рд▓реЗрдВ - рдШрдЯрдХ рдЬреЛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реИред
BasicLookAndFeel рдХреЗ рдЕрдиреБрд░реВрдк, рд╣рд░ J- рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ BasicUI-рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬреЛ рд╕реНрдЯрд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рдХрдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ BasicButtonUI рд╣реИ - рд╣рдо рдЗрд╕реЗ рд╡рд╛рд░рд┐рд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред

рд╕рднреА рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЕрдкрдирд╛ рд╣реИ, рдЙрд╕ рдШрдЯрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдпреВрдЖрдИ рд╣реИ) рдХрдВрдкреЛрдиреЗрдВрдЯреАрдпреВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХрдИ рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ - рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЗрдВрд╕реНрдЯреЙрд▓рдпреВрдЖрдИ (JComponent c)
    рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ J- рдШрдЯрдХ рдкрд░ UI рд╡рд░реНрдЧ рдХреЛ "рд╕реНрдерд╛рдкрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИред рдпрд╣ рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдпреВрдЖрдИ рдХреЗ рд╕рд╣реА рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬреЗ-рдШрдЯрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╢реНрд░реЛрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рд╕реА рднреА J- рдШрдЯрдХ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп updateUI () рд╕реЗ рдкреБрдХрд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИред

  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓рдпреВрдЖрдИ (JComponent c)
    рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдШрдЯрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рднреА рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдЕрдзрд┐рдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреА рдореЗрдореЛрд░реА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╣реА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ setUI (ComponentUI newUI) рд╕реЗ рдкреБрдХрд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдШрдЯрдХ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди UI рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рдШрдЯрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ "рд╕рд╛рдлрд╝" рд╣реЛ рдЬрд╛рддреА рд╣реИред

  3. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкреЗрдВрдЯ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, JComponent c)
    рдпрд╣ рд╡рд┐рдзрд┐ рд╕реАрдзреЗ рдШрдЯрдХ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд░рд╛рдЬреНрдп рдореЗрдВ рдШрдЯрдХ рдХреЗ рджреГрд╢реНрдп рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рдкреЗрдВрдЯрдХрдВрдкреЛрдиреЗрдВрдЯ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА) рд╕реЗ рдПрдХ рдШрдЯрдХ рдХреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдкрд╛рджрди / рдкреБрдирд░реНрд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ JComponent рд╡рд░реНрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рдВрд╢рдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдпрд╛рдиреА, рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рддрдм рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬрдм рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреНрд▓рд┐рдк рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рд╕рдм рд▓рд╛рдЧреВ рд╣реИ) рдкреЗрдВрдЯрдХрдВрдкреЛрдиреЗрдВрдЯ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА ) рдореЗрдВред

  4. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЕрджреНрдпрддрди (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, JComponent c)
    рдпрд╣ рд╡рд┐рдзрд┐ рдкреЗрдВрдЯ (рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ g, JComponent c) рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЬреЛрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ JCompords рдХреЗ рд▓рд┐рдП paintComponent (рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ g) рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ UI рд╡рд░реНрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдкреЗрдВрдЯреНрд╕ (Graphics g, JComponent c) рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА "рдЕрдкреНрд░рдЪрд▓рд┐рдд" рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ "рдХреНрд▓реАрди рд╢реАрдЯ" рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рддреА рд╣реИред

  5. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдпрд╛рдо getPreferredSize (JComponent c)
    рдпрд╣ рд╡рд┐рдзрд┐ рдЙрд╕ рдШрдЯрдХ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдпреВрдЖрдИ рд╡рд░реНрдЧ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
    рдЗрд╕реЗ Jomomponent рдпрд╛ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рд╡рд╛рд░рд┐рд╕ рдкрд░ рд╕рдорд╛рди рдирд╛рдо рдХреА getPreferredSize () рд╡рд┐рдзрд┐ рд╕реЗ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╡рд╛рдВрдЫрд┐рдд рдШрдЯрдХ рдЖрдХрд╛рд░ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

  6. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдпрд╛рдо getMinimumSize (JComponent c)
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдпрд╛рдо getMaximumSize (JComponent c)
    рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рджреЛ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдХрд╛рд░ рдмрджрд▓рддреЗ рд╕рдордп рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рдкреНрд░рдмрдВрдзрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡реЗ рдЙрд╕реА рдорд╛рди рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ getPreferredSize (JComponent c) , UI рд╡рд░реНрдЧ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

  7. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ (JComponent c, int x, int y)
    рдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдмрд┐рдВрджреБ рдЗрд╕ рдШрдЯрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред рдорд╛рдЙрд╕ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╣реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдЙрд╕ рдШрдЯрдирд╛ рдореЗрдВ, рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рдкрд░ "рджреЗрдЦреЗ рдЧрдП" рдКрдкрд░рд╡рд╛рд▓реЗ рдШрдЯрдХ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рдкрд░ рдХреМрди рд╕реЗ рдШрдЯрдХ рдмрд╣реБрдд рдКрдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реНрдерд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЙрди рдЬрдЧрд╣реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреИрдм рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЦрд╛рд▓реА рдХреНрд╖реЗрддреНрд░ рдпрд╛ рдЧреЛрд▓ рдмрдЯрди рдХреЗ рдХреЛрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░)ред
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕рдорд╛рд╣рд┐рдд (int x, int y) рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ JComponent рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рдкрд░ рдореМрдЬреВрдж рд╣реИред
рдореИрдВ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ ...

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

рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╡рд░реНрдЧреЛрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреВрдВрдЧрд╛:

JComponentComponentUIрджрд░рдЕрд╕рд▓, ComponentUI рд╕реЗ рдЗрди рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдХреЗ рд╕рднреА UI рд╡рд░реНрдЧ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреЗрд╕рд┐рдХрдпреВ рдХрдХреНрд╖рд╛рдПрдВ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдПрдХ рдШрдЯрдХ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдФрд░ рд╕рд░рд▓ рдХрд░рддреЗ рд╣реИрдВред

LookAndFeel рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░


рдореИрдВ LookAndFeel рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рди рд▓реМрдЯрд╛ рдЬрд╛ рд╕рдХреЗред

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

рдЕрддрдГ, рд▓реБрдХрдлреИрдВрдб рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
  1. installColors (JComponent c, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultBgName, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultFgName)
    installColorsAndFont (JComponent c, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultBgName, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultFgName, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultFontName)
    installBorder (JComponent c, рд╕реНрдЯреНрд░рд┐рдВрдЧ defaultBorderName)
    рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ (JComponent c)
    installProperty (JComponent c, String propertyName, Object propertyValue)
    makeKeyBindings (рдСрдмреНрдЬреЗрдХреНрдЯ [] рдХреА-рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ)
    makeInputMap (рдСрдмреНрдЬреЗрдХреНрдЯ [] рдХреБрдВрдЬреА)
    makeComponentInputMap (JComponent c, рдСрдмреНрдЬреЗрдХреНрдЯ [] рдХреБрдВрдЬрд┐рдпрд╛рдБ)
    loadKeyBindings (рдЗрдирдкреБрдЯ рдореИрдк рд░реЗрдЯрдкреЙрдЗрдВрдЯ, рдСрдмреНрдЬреЗрдХреНрдЯ [] рдХреБрдВрдЬрд┐рдпрд╛рдБ)
    рдореЗрдХрдЗрдХреЙрди (рдЕрдВрддрд┐рдо рд╡рд░реНрдЧ <?> рдЖрдзрд╛рд░рдХреНрд▓рд╛рд╕, рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ gifFile)
    getDesktopPropertyValue (рд╕реНрдЯреНрд░рд┐рдВрдЧ systemPropertyName, рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реЙрд▓рдмреИрдХрд╡реИрд▓реНрдпреВ)
    рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХрд╛ рдпрд╣ рд╕рдм рд╡рд┐рд╢рд╛рд▓ рд╕реЗрдЯ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд▓реБрдХрдПрдВрдбрдлреАрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рдЙрдкрдпреЛрдЧ рдФрд░ рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рдиред рдлрд┐рд░ рдЪрд╛рд╣реЗ рд╡рд╣ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╣реЛ рдпрд╛ рдлреЙрдиреНрдЯ рдХрд▓рд░, рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдпрд╛ рдлрд┐рд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдмреЙрд░реНрдбрд░ред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд▓рдЧ-рдЕрд▓рдЧ UI рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдФрд░ UIDefaults рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рд╡рд┐рдзрд┐ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реЗрдЖрдЙрдЯрд╢реИрд▓реА getLayoutStyle ()
    рдпрд╣ рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯрд╕рд┐рдЯреА рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд▓реЗрдмрд▓ рдФрд░ рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмреАрдЪ рдХреМрди рд╕рд╛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдХрдВрдЯреЗрдирд░ рдкрд░ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╕реНрдерд┐рдд рд╣реИ (рд╣рд╛рдБ, рдРрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рддрдХ рд╕рд╣реА)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рдмрд╛рдд рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рдХрдо рд▓реЗрдЖрдЙрдЯ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рднреА рдиреЛрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рд┐рдВрдЧ рдореЗрдВ, рд▓реЗрдЖрдЙрдЯрд╕рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рд▓реЗрдЖрдЙрдЯ GroupLayout рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИред

  3. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИрдлреНрд░реЗрдбрдмреИрдХ (рдШрдЯрдХ рдШрдЯрдХ)
    рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдЧреИрд░рдХрд╛рдиреВрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмреИрдХрд╕реНрдкреЗрд╕ рджрдмрд╛рддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдЕрдиреБрдкрдпреБрдХреНрдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкрд╛рда рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐)ред рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЯреВрд▓рдХрд┐рдЯ.рдЧреЗрдЯрдлреЙрд▓реНрдЯрдЯреВрд▓рдХрд┐рдЯ () .beep () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЧрд▓рдд рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рдЫреЛрдЯреА рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдирд┐рднрд╛рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рд╣рдореЗрд╢рд╛ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХрд╖реНрдЯрдкреНрд░рдж * рдмреАрдк * рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ)ред

  4. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЪрд┐рд╣реНрди getDisabledIcon (JComponent рдШрдЯрдХ, рдЪрд┐рд╣реНрди рдЖрдЗрдХрди)
    рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди LookAndFeel рдХреЗ рдЕрдиреБрд░реВрдк рд▓реЙрдХ рдХрд┐рдП рдЧрдП рдЖрдЗрдХрди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдорд╛рдирдХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓реЙрдХ рдмрдЯрди, рд▓реЗрдмрд▓ рдФрд░ рд▓реЙрдХ рдХрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЗ рдЖрдЗрдХрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "рд▓реЙрдХ" рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдЗрдХрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╕рдлрд▓ / рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИ - рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВ!

  5. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдЗрдХрди getDisabledSelectedIcon (JComponent рдШрдЯрдХ, рдЪрд┐рд╣реНрди рдЖрдЗрдХрди)
    рдпрд╣ рд╡рд┐рдзрд┐ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ "рдЪрдпрдирд┐рдд" рдЖрдЗрдХрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИред рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдкрд┐рдЫрд▓реА рд╡рд┐рдзрд┐ рдЯреНрд░рд╛рдЗрдЯ рд╣реИред

  6. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getName ()
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getID ()
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getDescription ()
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди рд╣реИ NativeLookAndFeel ()
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди
    рд▓реБрдХрдПрдВрдбрдлреЗрд▓ рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреЗ рд╕рдордп рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рд╡реЗ рдХреЗрд╡рд▓ рдЗрд╕ LookAndFeel рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓рднреВрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ

  7. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди getSupportsWindowDecorations ()
    рдпрд╣ рд╡рд┐рдзрд┐ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ - рдпрд╣ UIManager рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ RootPaneUI рдЗрд╕ LookAndFeel рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣реА рд╣реИ, рдПрдХ рдорд╛рдирдХ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡рд┐рдВрдбреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдирд╛рдПрдВред рдпрджрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд╣реА рд╣реИ, рддреЛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рд░реВрдЯрдкреИрдиреНрдпреВрдИ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдВрдбреЛ рд╕рдЬрд╛рд╡рдЯ рд▓рд╛рдЧреВ рдХреА рд╣реИ - рдмрд╕ рджреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
    рдЬреЗрдлреНрд░реЗрдо ред setDefaultLookAndFeelDecorated ( рд╕рдЪ );
    JDialog ред setDefaultLookAndFeelDecorated ( рд╕рдЪ );
    рдХрд┐рд╕реА рднреА JDialog / JFrame рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреИрд╕реЗ рдмрдирд╛рдПрдВ, рддрд╛рдХрд┐ рд╕реНрдкреНрд░реЗ рди рдХрд░реЗрдВ, рдореИрдВ рдирд┐рдпрдд рд╕рдордп рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд▓рд┐рдЦреВрдВрдЧрд╛ред

  8. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкреНрд░рд╛рд░рдВрднрд┐рдХ ()
    рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЕрдиреИрдЪреНрдЫрд┐рдХ ()
    рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, UIManager рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ LookAndFeel рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдиред рд╡реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╡реИрд╢реНрд╡рд┐рдХ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЖрдкрдХреЗ рд▓реБрдХрдлреАрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВред

  9. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ UIDefaults getDefaults ()
    рдпрд╣ рд╡рд┐рдзрд┐, рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рдореВрд▓ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдФрд░ рдмрдбрд╝реА рд╣реИред рдпрд╣ рд▓реБрдХрдПрдВрдбрдлреЗрд▓ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рднрд┐рдиреНрди рдЪрд░ (рдлреЛрдВрдЯ, рд░рдВрдЧ, рд╣реЙрдЯрдХреА, рдЖрджрд┐) рдХреА рд╕рднреА рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╡рд┐рдзрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред BasicLookAndFeel рдореЗрдВ, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
    1. initClassDefaults (UIDefaults рддрд╛рд▓рд┐рдХрд╛)
      рд╣рдордиреЗ рдмрдЯрди рдХреЗ UI рд╡рд░реНрдЧ рдХреЛ "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MyLookAndFeel рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдареАрдХ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкреБрди: рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    2. initSystemColorDefaults (UIDefaults рддрд╛рд▓рд┐рдХрд╛)
      рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдирдХ рд░рдВрдЧреЛрдВ (рд╡рд┐рд╖рдо рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд - рд╣реЗрдХреНрд╕ рдорд╛рди) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред

    3. initComponentDefaults (UIDefaults рддрд╛рд▓рд┐рдХрд╛)
      рдЗрд╕ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡рд┐рдзрд┐ рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдлреЛрдВрдЯ, рд░рдВрдЧ, рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ, рдмреЙрд░реНрдбрд░рдмреЛрд░реНрдб рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХ рдХреА рдЕрдиреНрдп рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред


рд╢рд╛рдпрдж рдЕрдм рдЖрдк рдкрд╣рд▓реЗ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реАрдЦ рдЪреБрдХреЗ рд╣реИрдВ ...

MyButtonUI.java


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, рд╣рдо рдмреЗрд╕рд┐рдХрдмрдЯрдирдпреВрдЖрдИ рд╕реЗ рдЕрдкрдиреЗ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдмрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлреЗрдВрдХреЗрдВрдЧреЗ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ MyButtonUI, BasicButtonUI рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЗрдВрд╕реНрдЯреЙрд▓рдпреВрдЖрдИ ( JComponent c )
{
// рдмреЗрд╕рд┐рдХ UI рдХреНрд▓рд╛рд╕ рдореЗрдВ рд▓рд╛рдЧреВ UI рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ
рд╕реБрдкрд░ ред рдЗрдВрд╕реНрдЯреЙрд▓рдпреВрдЖрдИ ( рд╕реА );

// рд╡рд╛рдВрдЫрд┐рдд JButton рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВ
// рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд▓рд┐рдП, AbstractButton рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП
AbstractButton рдмрдЯрди = ( AbstractButton ) c ;
рдмрдЯрди ред setOpaque ( рдЭреВрдард╛ );
рдмрдЯрди ред setFocusable ( true );
рдмрдЯрди ред рд╕реЗрдЯрдореИрд░реНрдЬрд┐рди ( рдирдП рдЗрдирд╕реЗрдЯреНрд╕ ( 0, 0, 0, 0 ) );
рдмрдЯрди ред setBorder ( BorderFactory ред createEmptyBorder ( 4, 4, 4, 4 ) );
}

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкреЗрдВрдЯ ( рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА , JComponent c )
{
Graphics2D g2d = ( Graphics2D ) рдЬреА ;
рдЬреА 2 рдбреА ред setRenderingHint ( RenderingHints ред KEY_ANTIALIASING , RenderingHints ред VALUE_ANTIALIAS_ON );

AbstractButton рдмрдЯрди = ( AbstractButton ) c ;
ButtonModel рдмрдЯрди рдмрдЯрди = рдмрдЯрди ред getModel ();

// рдмрдЯрди рдПрдХ рдЧреЛрд▓ рдЖрдпрддрд╛рдХрд╛рд░ рд╣реЛрдЧрд╛

// рдмрдЯрди рдкреГрд╖реНрдарднреВрдорд┐
рдЬреА 2 рдбреА ред рд╕реЗрдЯрдкреЗрдВрдЯ ( рдирдпрд╛ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯрдкреЗрдВрдЯ ( 0, 0, рд░рдВрдЧ ред рд╕рдлреЗрдж , 0, рд╕реА ред рдЧреЗрдЯрд╣рд╛рдЗрдЯ ) ()ред
рдирдпрд╛ рд░рдВрдЧ ( 200, 200, 200 ) );
// рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд┐рд╕реА рдлреЙрд░реНрдо рдХреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХреА рд╣реЛрддреА рд╣реИ,
// рдЕрдиреНрдпрдерд╛ рдкреНрд░рдХрд╛рд╢ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪрдордХ рдЬрд╛рдПрдЧреА
рдЬреА 2 рдбреА ред fillRoundRect ( 0, 0, c ред getWidth (), c ред getHeight (), 8, 8 );

// рдмрдЯрди рдмреЙрд░реНрдбрд░
рдЬреА 2 рдбреА ред рд╕реЗрдЯрдкреЗрдВрдЯ ( рд░рдВрдЧ ред рдЧреНрд░реЗ );
// рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдХрд╛рд░ рдХреЛ рдШрдЯрдХ рдХреА рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ рд╕реЗ 1px рдЫреЛрдЯрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП,
// рдЕрдиреНрдпрдерд╛, рдЖрдВрдХрдбрд╝рд╛ рдХрд╛ рджрд╛рдпрд╛рдВ рдФрд░ рдирд┐рдЪрд▓рд╛ рдХрд┐рдирд╛рд░рд╛ рдШрдЯрдХ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдкреЙрдк рдЬрд╛рдПрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛
// рдпрд╣ рдлрд┐рд▓ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рднрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓рдо / рдкрдВрдХреНрддрд┐ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬреА 2 рдбреА ред drawRoundRect ( 0, 0, c ред getWidth () - 1, c ред getHeight () - 1, 6, 6 );

// рдмрдЯрди рджрдмрд╛рддреЗ рд╕рдордп рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╢рд┐рдлреНрдЯ рдХрд░реЗрдВ
рдпрджрд┐ ( рдмрдЯрдирдореЙрдбрд▓ .PPressed () )
{
рдЬреА 2 рдбреА ред рдЕрдиреБрд╡рд╛рдж ( 1, 1 );
}

// рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЗрдореЗрдЬ рдЖрдЗрдХрди рдмрдирд╛рдПрдВ
рд╕реБрдкрд░ ред рдкреЗрдВрдЯ ( рдЬреА , рд╕реА );
}
}
рдЕрдм рдЖрдкрдХреЛ MyLookAndFeel рдореЗрдВ MyButtonUI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдГ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MyLookAndFeel рд╡рд░реНрдЧ рдореЗрдВ, рд╣рдо initClassDefaults (UIDefaults рддрд╛рд▓рд┐рдХрд╛) рд╡рд┐рдзрд┐ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдорд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп initClassDefaults ( UIDefaults рддрд╛рд▓рд┐рдХрд╛ )
{
// рдЕрднреА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрднреА рддрдХ рд╕рдм рдХреБрдЫ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ
// J рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди UI рдХрдХреНрд╖рд╛рдПрдВ
рд╕реБрдкрд░ ред initClassDefaults ( рддрд╛рд▓рд┐рдХрд╛ );

// рдФрд░ рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рддрд╛рд▓рд┐рдХрд╛ ред put ( "ButtonUI" , MyButtonUI ред class ред getCanonicalName () );
}
рдЕрдм рд╣рдорд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╣рдорд╛рд░реЗ "рдЕрдкрдбреЗрдЯреЗрдб" рдмрдЯрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ:


рд╣рдореНрдо, рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ ... рдХреНрдпрд╛ рд╣рдордиреЗ рдпреВрдЖрдИ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрд╣реАрдВ рдЧрдбрд╝рдмрдбрд╝ рдХреА рд╣реИ?
рдЖрдЗрдП рдпреВрдЖрдИ рдмрдЯрди рдХреЛ рд╕реАрдзреЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
рдЕрдВрддрд┐рдо JButton jButton = рдирдпрд╛ JButton ( "JButton" );
рдЬреЗ рдмрдЯрди setUI ( рдирдпрд╛ MyButtonUI () );
add ( jButton );
рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

рдирд╣реАрдВ, UI рдареАрдХ рд╣реИред рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?

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

рдпрд╣ рд╡рд┐рдзрд┐ ComponentUI рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ ... рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ !? рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐, рдЕрдореВрд░реНрдд ComponentUI рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреНрдпреЛрдВ рд╣реИ рдЬрд┐рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рджреЗрдЦрд╛)?

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдпреВрдЖрдИрдбреАрдлреЙрд▓реНрдЯреНрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдпреВрдЖрдИ рдХреЛ рд░рд┐рдлреНрд▓реЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЬреЛ рдкрд╣рд▓рд╛ рд╣рд╛рде рдЖрдпрд╛ рдерд╛, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдмреЗрд╕рд┐рдХрд▓рдЯрдирдпреВрдЖрдИ рдореЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдФрд░ рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдШрдЯрдХ createUI ( JComponent c ) {
AppContext appContext = AppContext ред getAppContext ();
рдмреЗрд╕рд┐рдХрдмрдЯрдирдпреВрдЖрдИ рдмрдЯрдирдпреВрдЖрдИ =
( BasicButtonUI ) appContext ред get ( BASIC_BUTTON_UI_KEY );
рдЕрдЧрд░ ( buttonUI == null ) {
рдмрдЯрдирдпреВрдЖрдИ = рдирдпрд╛ рдмреЗрд╕рд┐рдХрдмрдЯрдирдпреВрдЖрдИ ();
appContext ред put ( BASIC_BUTTON_UI_KEY , buttonUI );
}
рд╡рд╛рдкрд╕реА рдмрдЯрдирдпреВрдЖрдИ ;
}
рджрд░рдЕрд╕рд▓, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ MyButtonUI рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдирд┐рд░реАрдХреНрд╖рдг рдХреЛ рдареАрдХ рдХрд░реЗрдВ рдФрд░ MyButtonUI рдореЗрдВ createUI (JComponent c) рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдШрдЯрдХ createUI ( JComponent c )
{
// рд╣рдорд╛рд░реЗ рдпреВрдЖрдИ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ
рдирдИ MyButtonUI () рд▓реМрдЯреЗрдВ ;
}
рдЪрд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди JButton рдХреЛ UI рдХреА рдЬрдмрд░рди рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд┐рдирд╛:

рд╣реБрд░реНрд░реЗ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдпреБрдХреНрддрд┐: рдпрджрд┐ рдЖрдкрдХрд╛ рд╡рд╣реА UI рд╡рд░реНрдЧ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред MyButtonUI рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ:
рдирд┐рдЬреА рд╕реНрдерд┐рд░ MyButtonUI рдЙрджрд╛рд╣рд░рдг = рдЕрд╢рдХреНрдд ;

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдШрдЯрдХ createUI ( JComponent c )
{
// рд╣рдорд╛рд░реЗ рдпреВрдЖрдИ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ
рдЕрдЧрд░ ( рдЙрджрд╛рд╣рд░рдг == рдЕрд╢рдХреНрдд )
{
рдЙрджрд╛рд╣рд░рдг = рдирдпрд╛ MyButtonUI ();
}
рд╡рд╛рдкрд╕реА рдЙрджрд╛рд╣рд░рдг ;
}
рдпреВрдЖрдИ рдХреЗ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдореЗрдореЛрд░реА рдкрд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдЬреЗрдмрдЯрди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП MyButtonUI рд╡рд░реНрдЧ рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рджреЛрдиреЛрдВ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ UI рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдорд░рд╣рдо рдореЗрдВ рдЙрдбрд╝рдирд╛


рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдЕрдкрдиреА UI рдХреНрд▓рд╛рд╕ рдореЗрдВ LookAndFeel рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ - рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ UI рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде initClassDefaults (UIDefaults рддрд╛рд▓рд┐рдХрд╛) рд╡рд┐рдзрд┐ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп initClassDefaults ( UIDefaults рддрд╛рд▓рд┐рдХрд╛ )
{
// рд▓реЗрдмрд▓
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд▓реЗрдмрд▓рдпреВрдЖрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "ToolTipUI" , ... );

// рдмрдЯрди
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдмрдЯрдирдпреВрдЖрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "ToggleButtonUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдЪреЗрдХрдмреЙрдХреНрд╕рдпреВрдЖрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред put ( "RadioButtonUI" , ... );

// рдореЗрдиреВ
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдореЗрдиреВрдмрд░реА" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдореАрдиреВ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдкреЙрдкрдЕрдкрдореЗрдиреНрдпреВрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "MenuItemUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "CheckBoxMenuItemUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред put ( "RadioButtonMenuItemUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдкреЙрдкрдЕрдкрдореЗрдиреНрдпреВрд╕реЗрдкрд░рдЯреЗрд░реБрдИ" , ... );

// рд╕реЗрдкрд░реЗрдЯрд░
рддрд╛рд▓рд┐рдХрд╛ ред put ( "рд╕реЗрдкрд░реЗрдЯрд░рдпреВрдЖрдИ" , ... );

// рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд╕реНрдХреНрд░реЙрд▓рдмрд░реА" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд╕реНрдХреНрд░реЙрд▓рдкрдиреА" , ... );

// рдкрд╛рда
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TextFieldUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред put ( "PasswordFieldUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "FormattedTextFieldUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TextAreaUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред put ( "EditorPaneUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TextPaneUI" , ... );

// рдЯреВрд▓рдмрд╛рд░
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдЯреВрд▓рдмрд░реА" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "ToolBarSeparatorUI" , ... );

// рдЯреЗрдмрд▓
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TableUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TableHeaderUI" , ... );

// рдЪрдпрдирдХрд░реНрддрд╛
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "ColorChooserUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред put ( "FileChooserUI" , ... );

// рдХрдВрдЯреЗрдирд░
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдкреИрдирд▓рдпреВрдЖрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "ViewportUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд░реВрдЯрдкреИрдирд┐рдпреВ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TabbedPaneUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд╕реНрдкреНрд▓рд┐рдЯрдкреИрдирдпреВрдЖрдИ" , ... );

// рдЬрдЯрд┐рд▓ рдШрдЯрдХ
рддрд╛рд▓рд┐рдХрд╛ ред put ( "ProgressBarUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд╕реНрд▓рд╛рдЗрдбрд░рд┐рдЙрдбреА" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд╕реНрдкрд┐рдирд░рдпреВрдЖрдИ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "TreeUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рд▓рд┐рд╕реНрдЯреАрдпреВ" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕рдпреВрдЖрдИ" , ... );

// рдбреЗрд╕реНрдХрдЯреЙрдк рдкреЗрди
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "DesktopPaneUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "DesktopIconUI" , ... );
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "рдЗрдВрдЯрд░рдирд▓рдлреНрд░реИрдореБрдИ" , ... );

// рд╡рд┐рдХрд▓реНрдк рдлрд▓рдХ
рддрд╛рд▓рд┐рдХрд╛ ред рдбрд╛рд▓ ( "OptionPaneUI" , ... );
}
рдмреЗрд╢рдХ, рдкреНрд░рддреНрдпреЗрдХ "..." рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬреЗ-рдШрдЯрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдм рдЖрдк рдХрдо рд╕реЗ рдХрдо рд▓рдЧрднрдЧ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдирдХ рд╕реНрд╡рд╛рдЗрдк рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдпреВрдЖрдИ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдХрд╛рдо (рдФрд░ рд╕рдордп) рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

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

рд╢рд╛рдпрдж рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП, рд╕реАрдзреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рджреА рдЧрдИ рд╕реВрдЪреА рдкрд░ рдЬрд╛рдПрдВ ...

рдкрд╛рда рдШрдЯрдХ


рдмреЗрд╕рд┐рдХрд▓рд╛рдмреАрдпреВрдЖрдИ - рдЬреЗрд▓рд╛рдмреЗрд▓

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реБрдХрдПрдВрдбрдлрд┐рд▓реНрд╕ рдореЗрдВ, рд▓реЗрдмрд▓рдпреВрдЖрдИ рдХреЛ рдпрд╛ рддреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ BasicLabelUI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, WindowsLabelUI рдореЗрдВ, mnemonics-underscores рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ Alt рдХреЛ рдкрдХрдбрд╝реЗ рд░рд╣рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ - рд╕рд╛рджрд╛ рдпрд╛ HTML рдкрд╛рда, рд╕рд╛рде рд╣реА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ mnemonics рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди - BasicLabelUI рдореЗрдВ рд╣реИред

рдореБрдЦреНрдп рдЪрд╛рд▓, рд╡реИрд╕реЗ, рдкрд╛рда рдХреЗ рд╕рд╣реА рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рд╣реИ - рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ / рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ 2 рд╕реЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╛рда рдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ 2 ред drawStringUnderlineCharAt ( l , g , s , mnemIndex , textX , textY );
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╕реНрд╡рд┐рдВрдЧрд┐рдВрдЧ рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ 2 рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╕реАрдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмреЗрд╕рд┐рдХрд▓реАрдмреАрдпреВрдЖрдИ рдХрдХреНрд╖рд╛ рдХрд╛ рдЧрд╣рди рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрд╕реВрдЪреА рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдиреНрдореБрдЦ рд╣реИрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рдо рдЭреВрдореЗрдВрдЧреЗ рдирд╣реАрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред

BasicToolTipUI - JToolTip

JLabel рдШрдЯрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдИ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, JToolTip (рдЕрдореВрд░реНрдд рд░реВрдк рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП) рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдкрд╛рда рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк JToolTip рдХреЛ setOpaque (рдЧрд▓рдд) рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛ рдХреЗ рднреАрддрд░ рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЯреВрд▓рдЯрд┐рдк рдХреЛ рдПрдХ рдЕрд▓рдЧ JWindow рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЯреНрд░рд┐рдХ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

рдЕрдм рддрдХ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░рдХреАрдмреЗрдВ рд╣реИрдВ - рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХреА рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (1.7+ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 1.6 u10 + рдпрд╛ рд╡рд┐рдВрдбреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ AWTUtilities) рдпрд╛ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ "рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ" рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рдкрд░ рдЯреВрд▓рд┐рдк рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗрдВред ред

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

рдмрдЯрди


рдмреЗрд╕рд┐рдХрдмрдЯрдирдИ - рдЬреЗрдмрдЯрди

рдКрдкрд░ MyButtonUI рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ BasicButtonUI рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдкреЗрдВрдЯ рд╡рд┐рдзрд┐ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, JComponent c) рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ ред

рдХрд░реЛ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рддрд░реАрдХреЗ:
рдкреЗрдВрдЯрдмрдЯрдирдкреНрд░реЗрд╕реНрдб (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдПрдмреНрд╕реНрдЯреНрд░рдХреНрдЯрди рдмреА)
рдкреЗрдВрдЯрдЯреЗрдХреНрд╕реНрдЯ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдПрдмреНрд╕рдЯреНрд░рд┐рдмреНрдпреВрдЯрди рдмреА, рд░реЗрдХреНрдЯреЗрдВрдЧрд▓ рдЯреЗрдХреНрд╕рдЯреНрд░реЗрдХреНрдЯ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЗрдХреНрд╕реНрдЯ)
рдкреЗрдВрдЯрдЖрдИрдХреЙрди (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдЬреЗрдХреЙрдордкреНрд▓рд╛рдВрдЯ рд╕реА, рд░реЗрдХреНрдЯреЗрдВрдЧрд▓ рдЖрдЗрдХрд░реЗрдХреНрдЯ)
рдкреЗрдВрдЯрдлреЛрдХрд╕ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдмреА) , рдЖрдпрдд textRect, рдЖрдпрдд iconRect)

рдорд╛рдорд▓рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдореНрд╣рд╛рд░рд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐, рдмрдЯрди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рдХрд╣реАрдВ рднреА рдЧрд▓рддреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

BasicToggleButtonUI - JToggleButton

JToggleButton рдХреЗ рд▓рд┐рдП рдХреЛрдИ ToggleButtonUI рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ - рдХреЗрд╡рд▓ BasicToggleButtonUI рдХреЛ BasicButtonUI рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд▓рдЧрднрдЧ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рдмрд╕ рдЕрдм, JToggleButton рдореЗрдВ, рдмрдЯрди рдореЙрдбрд▓ рдЪрдпрдирд┐рдд = рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди JButton рдореЗрдВ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЙрдбрд▓ рд╕реНрд╡рдпрдВ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рджреГрд╢реНрдп рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдпрд╣ рд╣реИ рдХрд┐ JToggleButton рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдХреЛ рдкрдХрдбрд╝реЗ рдмрд┐рдирд╛ рдкреНрд░реЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рди рддреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рди рд╣реА рддрд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП JButton рдФрд░ JToggleButton рджреЛрдиреЛрдВ рдХреЗ UI рдХреЛ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдпрд╛ рджреГрд╢реНрдп рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ (MyToggleButtonUI, MyButtonUI рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ), рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕реНрдереИрддрд┐рдХ createUI рд╡рд┐рдзрд┐ (JComponent c) рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ MyToggleButtonUI рдореЗрдВред

BasicRadioButtonUI - JRadioButton

JToggleButton рдХреЗ рд╕рдорд╛рди - рдЗрд╕ рдШрдЯрдХ рдореЗрдВ RadioButtonUI рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИред BasicRadioButtonUI, BasicToggleButtonUI рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдЖрдЗрдХрди рдФрд░ рдПрдХ рдорд╛рдирдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдХрдореА рдореЗрдВ рднрд┐рдиреНрди рд╣реИред

BasicCheckBoxUI - JCheckBox

рдпрд╣ UI рдЖрдЗрдХрди рдХреЛ рдЫреЛрдбрд╝рдХрд░, BasicRadioButtonUI рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдореЗрдиреНрдпреВ


BasicMenuBarUI - JMenuBar

рдпрд╣ рдШрдЯрдХ JMenu рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ "рд╕реНрдЯреИрдВрдб" рд╣реИ рдФрд░ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдпрд╣ рдХреБрдЫ рднреА рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм BasicMenuBarUI рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдШрдЯрдХ рд╕реАрдорд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╛рд░реНрдердХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ "рд╡рд┐рд░рд╛рд╕рдд" рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ - рдореИрдХ рдУрдПрд╕ рдкрд░, рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдпреВрдЖрдИ рд╕реНрд╡рдпрдВ, рд╕рд╛рде рд╣реА рдЕрдиреНрдп рд╕рднреА рдпреВрдЖрдИ рдореЗрдиреВ рдФрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо, рд╕рд┐рд╕реНрдЯрдо рдореЗрдиреВ рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдпрд╛рдиреА рдЬрдм рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛ:
рд╕рд┐рд╕реНрдЯрдо ред setProperty ( "apple.laf.useScreenMenuBar" , "рд╕рд╣реА" );
рдореИрдХ рдУрдПрд╕ рдкрд░ рдЪрд▓рдиреЗ рдкрд░ред

BasicMenuItemUI - JMenuItem

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рдШрдЯрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдмрд╡рд╛рд╕реАрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрд▓реНрдЯреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рднреА рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░реВрдВрдЧрд╛ред

BasicMenuItemUI рдореЗрдВ рдХрдИ рд╕реНрд░реЛрдд-рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:
  1. paintMenuItem (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, JComponent c, Icon checkIcon, Icon arrowIcon, Color Background, Color рдЕрдЧреНрд░рднреВрдорд┐, int defaultTextIconGap)
    рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдЬреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред

  2. рдкреЗрдВрдЯрдмреИрдХреИрдХрдЧреНрд░рд╛рдЙрдВрдб (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдЬреЗрдореЗрдирдпреВрдЗрдЯреЗрдо
    рдореЗрдиреВ рдЗрдЯреЗрдо, рдХрд▓рд░ рдмреАрдЬреАрдХрд▓рд░) рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред

  3. PaintCheckIcon (рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ g, MenuItemLayoutHelper lh, MenuItemLayoutHelper.LayoutResult lr, Color holdc, Color рдЕрдЧреНрд░рднреВрдорд┐)
    JRadioututMenuItem рдпрд╛ JCheckBoxMenuItem рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдпрди рдЖрдЗрдХрди рдмрдирд╛рддрд╛ рд╣реИред

  4. paintIcon( Graphics g, MenuItemLayoutHelper lh, MenuItemLayoutHelper.LayoutResult lr, Color holdc )
    , JMenuItem' JMenu.

  5. paintText( Graphics g, MenuItemLayoutHelper lh, MenuItemLayoutHelper.LayoutResult lr )
    .

  6. paintAccText( Graphics g, MenuItemLayoutHelper lh, MenuItemLayoutHelper.LayoutResult lr )
    , ( ┬лAlt+F4┬╗).

  7. paintArrowIcon( Graphics g, MenuItemLayoutHelper lh, MenuItemLayoutHelper.LayoutResult lr, Color foreground )
    , JMenu.


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

рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рд╕рднреА рджрд▓рд┐рдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рд╣реИ, рдлрд┐рд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИред

рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕рднреА рдЧрдгрдирд╛ MenuItemLayoutHelper рд╡рд░реНрдЧ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ (sun.swing) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд░реНрдЧ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ JDK рдФрд░ OpenJDK рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдирддреАрдЬрддрди, рдЕрдЧрд░ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдк рддрддреНрд╡реЛрдВ рдпрд╛ рдЙрдирдХреЗ рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣рд░ рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рдирдХ MenuItemLayoutHelper рдбреЗрдЯрд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ 16x16 рдЖрдЗрдХрди рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рднреА рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдерд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ)ред

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

BasicMenuUI - JMenu

рдпрд╣ UI 1 рдЗрди 1, BasicMenuItemUI рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмреБрд░рд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рдЪреБрдирдирд╛ рд╣реИ - рдпрд╛ рддреЛ рдЕрдкрдиреЗ BasicMenuItemUI рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВ рдФрд░ BasicMenuUI рд╕реЗ JMenu рдХреЗ рддрд░реНрдХ рдХреА рдирдХрд▓ рдХрд░реЗрдВ, рдпрд╛ BasicMenuUI рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╡рдВрд╢рдЬ BasicMenuItemUI рд╕реЗ рджреГрд╢реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБред

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

BasicCheckBoxMenuItemUI - JCheckBoxMenuItem
BasicRadioButtonMenuItemUI - JRadioButtonMenuItem

рдЗрди рджреЛрдиреЛрдВ UI рд╡рд░реНрдЧреЛрдВ рдХреЛ BasicMenuItemUI рдХреЗ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╡рд┐рд╡реЗрдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдХреЗрд╡рд▓ рдЪреЗрдХрдмреЙрдХреНрд╕ / рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдЪрдпрди рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╛ рдЖрдк рдЗрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рд╕реАрдзреЗ рдЕрдкрдиреЗ BasicMenuItemUI рд╡рдВрд╢рдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ UI рдХреА рджреЛ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ createUI (JComponent c) рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

BasicPopupMenuSeparatorUI - JSeparator

рдпрд╣ рд╡рд░реНрдЧ рдХреЗрд╡рд▓ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд BasicSeparatorUI рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ JPopupMenu рдореЗрдВ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред JSeparator рдШрдЯрдХ рд╕реНрд╡рдпрдВ рдПрдХ рд╕рд░рд▓ рдбреНрд░реЙ рд╕реНрдЯреНрд░рд┐рдк / рд▓рд╛рдЗрди / рд▓рд╛рдЗрди рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рднрд╛рдЧреЛрдВ рдХреЛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд┐рд╕реА рджрд┐рдП рдЧрдП UI рд╡рд░реНрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдорд╛рдирдХ рдкреЗрдВрдЯ рд╡рд┐рдзрд┐ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬреА, рдЬреЗрдХрдВрдкреЛрдиреЗрдВрдЯ рд╕реА) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕рдореЗрдВ рд╡рд┐рднрд╛рдЬрдХ рдХреА рд╡рд╛рдВрдЫрд┐рдд рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИред

BasicPopupMenuUI - JPopupMenu

рджрд░рдЕрд╕рд▓, рдореЗрдиреНрдпреВ рд╕реАрд░реАрдЬрд╝ рдХрд╛ рдЖрдЦрд┐рд░реА рдХрдВрдкреЛрдиреЗрдВрдЯ JPopupMenu рд╣реИред рдЗрд╕ рдШрдЯрдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рддрд░реНрдХ BasicPopupMenuUI рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╕реНрд╡рд╛рдж рдХреЗ рд░реВрдк рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдмрд┐рдВрджреБ рд╣реИрдВ - рдореЗрдиреВ рдмреЙрд░реНрдбрд░, рдЬреЛ рдкреЙрдк-рдЕрдк рдореЗрдиреВ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдЖрдВрддрд░рд┐рдХ рддрддреНрд╡реЛрдВ рдФрд░ рдореЗрдиреВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдЗрдВрдбреЗрдВрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдмреЙрд░реНрдбрд░ рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓рдпреВрдЖрдИ (JComponent c) рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП , рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдкреЗрдВрдЯ (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ g, JComponent c) рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред

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

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдЪреНрдЪрд╛рдИ рдХреЛ рдпреВрдЖрдИ рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреЙрдк-рдЕрдк рдореЗрдиреВ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░, рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реБрдирдирд╛ рд╣реЛрдЧрд╛ред

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...


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

рдпрджрд┐ рдЖрдкрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдкрдврд╝ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓реА рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдПрд▓рдПрдПрдл рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдпреВрдЖрдИ рдХреА рдХрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк WebLookAndFeel рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рднреА рдХрдЯреМрддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВ UI рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╡рд╣рд╛рдВ рдЖрдк рд╕рднреА рдорд╛рдирдХ UI рдХреЗ рдкреВрд░реНрдг-рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛ рдореИрдВрдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рдФрд░ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдЕрдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ "рдЧреБрдбреАрдЬрд╝" рднреАред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ, рд╕рд╛рде рд╣реА рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдЕрдЧрд▓реА рдХрдбрд╝реА рдореЗрдВ рд╢реЗрд╖ рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВред рдФрд░ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Java LookAndFeel / UI рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реИ - рддреЛ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ! рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

PS рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрдардиреАрдп рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП dzz.org рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж ред

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


All Articles