XML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреБрдорд╛рдУ рдореЗрдВ рдореЗрдиреВ рдмрд╛рд░ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ

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

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

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

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

XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рд╡рд┐рд╡рд░рдг


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдПрдХ XML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рд╕реБрдВрджрд░, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдзрд╛рд░ (рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдиреВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдЖрдЗрдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреМрди рд╕реЗ рддрддреНрд╡ рдореМрдЬреВрдж рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ JMenuBar рд╣реИ, рдЬрд┐рд╕ рдкреИрдирд▓ рдкрд░ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рддрддреНрд╡ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред рдФрд░ рд╣рдо XML рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдЗрд╕ рдкреИрдирд▓ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред

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

рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рдХрдИ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ - рддрддреНрд╡ рдХрд╛ рдирд╛рдо (рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рд╕реЗ рд╣рдореЗрдВ рд░реБрдЪрд┐ рдХреЗ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдкрд╛рда, рдкрд╛рда рдХреЗ рдкрд╛рд╕ рдПрдХ рдЫрд╡рд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдпреЛрдЬрди рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рддрддреНрд╡ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рддрдерд╛рдХрдерд┐рдд mnemonics - рдирд╛рдо рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛рдВрдХрд┐рдд рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдпреЛрдЬрди alt + highlighted_character_name.For рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдиреВ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП alt + F, рдФрд░ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ (рддрдерд╛рдХрдерд┐рдд рддреНрд╡рд░рдХ - рддреНрд╡рд░рд┐рдд рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рдЖрдЧреЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдПрд╕рдЖрдИрд╕реА zovaniya, рдореЗрдиреВ рдореЗрдВ рд╣реА рджрд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ctrl + O рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рддрддреНрд╡ рд╕рдХреНрд░рд┐рдп рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ -> рдпрджрд┐ рдХреЛрдИ рдкрд╛рда рдЪрдпрдирд┐рдд рдирд╣реАрдВ рд╣реИ рддреЛ рдХрдЯ рдХрд░реЗрдВ)ред

рд╣рдо рдореЗрдиреВ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдИрдВрдЯреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдПред рдпрд╣ рдПрдХреНрд╕рдПрдордПрд▓ рдЯреИрдЧ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗред

Tags: JMenuBar - <menubar>, JMenu - <menu>, JMenuItem - <menuitem>, рд╡рд┐рднрд╛рдЬрдХ - <рд╡рд┐рднрд╛рдЬрдХ />

рдЧреБрдг: рдирд╛рдо - рдирд╛рдо, рдкрд╛рда - рдкрд╛рда, рдЫрд╡рд┐ - рдЫрд╡рд┐, mnemonics - mnemonic, рддреНрд╡рд░рдХ - рддреНрд╡рд░рдХ, рддрддреНрд╡ рдкрд╣реБрдВрдЪ - isEnabledред

рдореЗрдиреВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ XML рд╕реЗ рдорд┐рд▓реЗрдВ!


рд╣рдорд╛рд░реЗ рдореЗрдиреВ рдХреЗ XML рддрддреНрд╡реЛрдВ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рддреБрд░рдВрдд рдореЗрдиреВ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

<?xml version="1.0" encoding="utf-8"?> <menubar name="ourMenu"> <!--File--> <menu name="file" text="File" mnemonic="F"> <menu name="new" text="New" mnemonic="N"> <menuitem name="doc" text="Document" image="./data/MenuXML/img1.jpg"/> </menu> <menuitem name="open" text="Open..." mnemonic="O" accelerator="control O"/> <separator/> <menu name="download" text="Download as"> <menuitem name="msword" text="Microsoft Word (.docx)"/> </menu> <separator/> <menuitem name="print" text="Print" mnemonic="P" accelerator="control P"/> </menu> <!--Edit--> <menu name="edit" text="Edit" mnemonic="d"> <menuitem name="undo" text="Undo" image="./data/MenuXML/img1.jpg" accelerator="control Z" isEnabled="false"/> <menuitem name="redo" text="Redo" image="./data/MenuXML/img1.jpg" accelerator="control Y" isEnabled="false"/> <separator/> <menuitem name="cut" text="Cut" image="./data/MenuXML/img1.jpg" accelerator="control X" isEnabled="false"/> <menuitem name="copy" text="Copy" image="./data/MenuXML/img1.jpg" accelerator="control C" isEnabled="false"/> <menuitem name="paste" text="Paste" image="./data/MenuXML/img1.jpg" accelerator="control V" isEnabled="false"/> </menu> <!--Format--> <menu name="format" text="Format" mnemonic="o"> <menu name="styles" text="Paragraph styles"> <menu name="normalText" text="Normal text"> <menuitem name="applyNormText" text="Apply normal text" accelerator="control alt 0"/> </menu> <menu name="heading" text="Heading"> <menuitem name="applyHeading" text="Apply heading" accelerator="control alt 1"/> </menu> <separator/> <menu name="options" text="Options" image="./data/MenuXML/img1.jpg"> <menuitem name="saveOptions" text="Save options"/> </menu> </menu> </menu> <!--Help--> <menu name="help" text="Help" mnemonic="H"> <menuitem name="issue" text="Report an issue"/> <menuitem name="abuse" text="Repor abuse"/> <separator/> <menuitem name="shortcuts" text="Keyboard shortcuts" accelerator="control SLASH"/> </menu> </menubar> 

XML рд╣реИрдВрдбрд▓рд░


рдЕрдм рдЬрдм рд╣рдордиреЗ рдЕрдкрдиреЗ рдореЗрдиреВ рдХреЛ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЬрд╛рд╡рд╛ рдкреИрдХреЗрдЬ org.xml.sax рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдПрдкреАрдЖрдИ рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )ред XMLMenuHandler рд╡рд░реНрдЧ, рдЬреЛ DefaultHandler рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ ContentHandler рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ XML рд╕рдВрд░рдЪрдирд╛ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛:

 public class XMLMenuHandler extends DefaultHandler { private Map menuMap = new HashMap(); private JMenuBar menuBar; private LinkedList menuList = new LinkedList(); @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { //   (menu, menubar, menuitem  separator) if(qName.equals("menu")) { parseMenu(atts); } else if(qName.equals("menubar")) { parseMenubar(atts); } else if(qName.equals("menuitem")) { parseMenuitem(atts); } else if(qName.equals("separator")) { parseSeparator(); } } //   </menu>      . @Override public void endElement(String uri, String localName, String qName) throws SAXException { if(qName.equals("menu")) { menuList.removeFirst(); } } private void parseSeparator() { //     ((JMenu)menuList.getFirst()).addSeparator(); } private void parseMenuitem(Attributes atts) { //   JMenuItem menuItem = new JMenuItem(); String menuItemName = atts.getValue("name"); //   parseAttributes(menuItem, atts); menuMap.put(menuItemName, menuItem); //     ((JMenu)menuList.getFirst()).add(menuItem); } private void parseMenubar(Attributes atts) { //   JMenuBar tempMenuBar = new JMenuBar(); String menuBarName = atts.getValue("name"); menuMap.put(menuBarName, tempMenuBar); menuBar = tempMenuBar; } private void parseMenu(Attributes atts) { //  JMenu menu = new JMenu(); String menuName = atts.getValue("name"); //  parseAttributes(menu, atts); menuMap.put(menuName, menu); // ,     -. if (menuList.size() == 0) { menuBar.add(menu); } else { //  ((JMenu)menuList.getFirst()).add(menu); } //    - menuList.addFirst(menu); } private void parseAttributes(JMenuItem item, Attributes atts) { //  String text = atts.getValue("text"); String image = atts.getValue("image"); String mnemonic = atts.getValue("mnemonic"); String accelerator = atts.getValue("accelerator"); String isEnabled = atts.getValue("isEnabled"); //         XML item.setText(text); if(image != null) { item.setIcon(new ImageIcon(image)); } if(mnemonic != null) { item.setMnemonic(mnemonic.charAt(0)); } if(accelerator != null) { item.setAccelerator(KeyStroke.getKeyStroke(accelerator)); } if(isEnabled != null) { item.setEnabled(Boolean.parseBoolean(isEnabled)); } } public Map getMenuMap() { return menuMap; } 


рд╣рдо рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ XML рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:

 public class XMLMenuParser { //XML,    private InputSource inputSource; //XML  private SAXParser saxParser; // XML  private XMLMenuHandler xmlMenuHandler; public XMLMenuParser(InputStream inputStream) { // XML    XML   . try { Reader reader = new InputStreamReader(inputStream); inputSource = new InputSource(reader); saxParser = SAXParserFactory.newInstance().newSAXParser(); xmlMenuHandler = new XMLMenuHandler(); } catch (Exception e) { System.out.println("Something went wrong during SAXParser initialization: " + e.getMessage()); throw new RuntimeException(e); } } public void parseXML() throws IOException, SAXException { saxParser.parse(inputSource, xmlMenuHandler); } public JMenuBar getMenuBar(String name) { return (JMenuBar)xmlMenuHandler.getMenuMap().get(name); } } 


рдФрд░ рдЕрдм рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рдо XML рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдореЗрдиреВ рдХреЛ рд╕рд░рд▓ рдпреВрдЖрдИ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

 public class XMLMenuCreator extends JFrame { public XMLMenuCreator() { super("XML Menu Creator"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); try { FileInputStream in = new FileInputStream("./data/MenuXML/menu.xml"); XMLMenuParser xmlParser = new XMLMenuParser(in); xmlParser.parseXML(); //,   XML  ,    ( <menubar>), //    UI setJMenuBar(xmlParser.getMenuBar("ourMenu")); } catch (Exception e) { System.out.println("Exception: " + e.getMessage()); } setSize(200, 200); setVisible(true); } } 


рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдВрдбреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИ):
рдЫрд╡рд┐

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


рдЕрдм, рдЕрдЧрд░ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдореЗрдиреВ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рдЙрдкрдпреБрдХреНрдд XML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреА рд╣реЛрдЧреА, рдЬреЛ рдореЗрдиреНрдпреВ рдмрд╛рд░ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрддрд╛рдП, рдФрд░ рджреЛ рд╡рд░реНрдЧреЛрдВ XMLMenuHandler рдФрд░ XMLMenuParser рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) XMLMenuHandler рдХреЛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдмрдирд╛рдХрд░) рдФрд░ рдЗрд╕ рд╕реВрдк рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЕрдВрддрд┐рдо рджрд┐рди рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдФрд░ рдмрдзрд╛рдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: http://www.google.com/url?q=https%3A%2F%2Fdocs.google.com%2Fopen%3Fid%3D0B1I02Tclzz-10/RTVtNVFNVkkxxU1UU

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


All Articles