ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Menu Popup MenuItem

Для создания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню («main menu«) ΠΈΠ»ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Π² java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с использованиСм SWT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс Menu. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² конструктору класса Menu Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ прилоТСния Shell ΠΈ ΡΡ‚ΠΈΠ»ΡŒ. Π’ зависимости ΠΎΡ‚ значСния стиля [SWT.BAR | SWT.POP_UP] мСню ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ «main menu» ΠΈΠ»ΠΈ Π²ΠΈΠ΄ «Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π°» (контСкстноС мСню).

Π’ тСкстС страницы рассматриваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ MenuExample.java создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² мСню. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° мСню ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь.

Π“Π»Π°Π²Π½ΠΎΠ΅ мСню, shell main menu

Для создания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню («main menu«) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² конструкторС Menu ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ SWT.BAR. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ создаСтся «main menu» с двумя ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ («File», «Edit»).

ΠŸΡƒΠ½ΠΊΡ‚Π°ΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню MenuItem Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² конструктор пСрСдаСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Menu ΠΈ устанавливаСтся ΡΡ‚ΠΈΠ»ΡŒ SWT.CASCADE. Π‘Ρ‚ΠΈΠ»ΡŒ SWT.CASCADE опрСдСляСт Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² main мСню.

МСню с аксСлСраторами

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ для мСню «File» ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню «Select All» ΠΈ «Exit». Для этого формируСтся мСню submenu со стилСм SWT.DROP_DOWN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню fileitem. К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню «menu item» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ аксСлСраторы setAccelerator, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ соотвСтcΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ MenuItem горячими клавишами.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ прСдставлСн интСрфСйс Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

МСню с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ выдСлСния

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ выдСлСния. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСню «Edit» ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π² статусной строкС Ρ„ΠΎΡ€ΠΌΡ‹ отобраТаСтся Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ статусной строки StatusbarManager, ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° страницС Бтатусная строка StatusbarManager.

На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ прСдставлСн интСрфСйс Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π°, shell menu popup

Для создания Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° (menu popup) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² конструкторС Menu ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ SWT.POP_UP. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ создаСтся Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΎΠΊΠ½Ρƒ прилоТСния Shell. Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ (мСню) с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ вызываСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π° ΠΏΡ€Π°Π²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΌΡ‹ΡˆΠΈ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ позиционируСтся ΠΏΠΎ мСсту полоТСния указатСля ΠΌΡ‹ΡˆΠΈ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню, Menu

МоТно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ контСкстноС мСню Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ SWT. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ создадим Π΄Π²Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚ΠΈΠΏΠ° ΠΏΠ°Π½Π΅Π»ΠΈ Composite ΠΈ Π΄Π΅Ρ€Π΅Π²Π° со списком Tree. К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ своС контСкстноС мСню.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ„ΠΎΡ€ΠΌΡ‹ с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ контСкстного мСню

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ контСкстноС мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² конструктор класса Menu ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса Shell Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ SWT.POP_UP. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру контСкстного мСню.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню («main menu«), ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ списка, Π½ΠΎ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ создаСтся контСкстноС мСню, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ «Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ». ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню измСняСт Ρ†Π²Π΅Ρ‚ ΠΏΠ°Π½Π΅Π»ΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ иСрархичСского контСкстного мСню прСдставлСн Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

ДинамичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² контСкстного мСню

ИзмСним Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ контСкстноС мСню ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π΄Π΅Ρ€Π΅Π²Π° Tree. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ контСкстного мСню динамичСски Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ всС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ контСкстного мСню, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ записи Π² Π΄Π΅Ρ€Π΅Π²Π΅.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ контСкстного мСню с динамичСской Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² прСдставлСн Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

ΠœΠΎΠ΄ΡƒΠ»ΡŒ создания мСню MenuCreater

ОписаниС Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° MenuExample, дСмонстрируСт возмоТности Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SWT ΠΏΠΎ созданию Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° мСню. Но Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Но ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· приходится Β«Ρ‚Π°ΡΠΊΠ°Ρ‚ΡŒ Π·Π° собой» ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ свои ΠΊΠΎΠ΄Ρ‹.

ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ формирования мСню MenuCreater, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ иСрархичСскоС Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мСню, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ аксСлСраторы, ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ согласно описанию Π²ΠΎ внСшнСм Ρ„Π°ΠΉΠ»Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π€Π°ΠΉΠ» с описаниСм структуры мСню размСщаСтся Π² рСсурсах, Ρ‚.Π΅. настраиваСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ распространяСтся вмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ jar-модуля.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности модуля MenuCreater Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ

Листинг модуля MenuCreater

MenuCreater Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс MenuDesc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт ΠΏΡƒΠ½ΠΊΡ‚ мСню.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСстирования MenuCreaterTest Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для мСню, рСсурсныС Ρ„Π°ΠΉΠ»Ρ‹ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс IMenuBar.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ прСдставлСн интСрфСйс ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° MenuCreaterTest с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Π»ΠΎΠ³ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎ Java

Учимся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Java с нуля

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мСню Π² интСрфСйсС Java

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° javaΠ‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ мСню Π² Java достаточно просто. НСдавно ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ мСню Π² Java. Π‘Π½Π°Ρ‡Π°Π»Π° создаСтся строка мСню.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСню создаСтся свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚:

МСню Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня помСщаСтся Π² строкС мСню:

Π—Π°Ρ‚Π΅ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ мСню Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΈ подмСню:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° javaРис.1. МСню ΠΈ подмСню

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° рис.1. Они ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ Paste(Вставка) ΠΈ Rad-only(Волько для чтСния).

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ мСню, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ события. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню Π½Π°Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ:

БущСствуСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ JMenu.add(String), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Π² ΠΊΠΎΠ½Π΅Ρ† мСню, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ созданный ΠΏΡƒΠ½ΠΊΡ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ:

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’ Ρ€Π°Π½Π½ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Action. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс Action. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для этого класс Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ AbstractAction. Π—Π°Ρ‚Π΅ΠΌ Π² конструкторС AbstractAction указываСтся ΠΌΠ΅Ρ‚ΠΊΠ° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈ пСрСопрСдСляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ actionPerformed(), Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события, связанного с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ. НапримСр:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

JMenuBar, JMenu, JToolBar

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ мСню JMenu Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swing позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ элСмСнтов (ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню) ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² интСрфСйсС ΠΎΠΊΠ½Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ мСню прСдставляСт собой ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΡ‚ класса AbstractButton ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ внСшним Π²ΠΈΠ΄ΠΎΠΌ ΠΈ нСбольшими Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠΌ находится Π² JMenu. БоотвСтствиС элСмСнтов управлСния ΠΈ элСмСнтов мСню прСдставлСн Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСнияЭлСмСнты мСню
Кнопка JButtonэлСмСнт-мСню JMenuItem
ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ JRadioButtonэлСмСнт-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ JRadioButtonMenuItem
Π€Π»Π°ΠΆΠΎΠΊ JCheckBoxэлСмСнт-Ρ„Π»Π°ΠΆΠΎΠΊ JCheckBoxMenuItem

Π’ мСню Π½Π΅Ρ‚ эквивалСнта Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ JToggleButton. Π‘ Π΅Π³ΠΎ функциями ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ систСмного мСню. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° :

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простоС мСню, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ фактичСски ΠΊΠ½ΠΎΠΏΠΊΠΈ, собранныС Π² список. Бписки элСмСнтов мСню, ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ мСню (drop-down menus), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Swing классом JMenu. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ мСню прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°Ρ….

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ мСню JMenu ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ createFileMenu() ΠΈ createViewMenu(), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ add() Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ элСмСнты мСню, Π² Ρ‚ΠΎΠΌ числС элСмСнты-Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈ элСмСнты-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ.

Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ списки мСню Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² строкС мСню класса JMenuBar, содСрТащСй ΠΌΠ΅Ρ‚ΠΎΠ΄ add() для добавлСния Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… мСню JMenu. Для размСщСния строки мСню Π² интСрфСйсС ΠΎΠΊΠ½Π° вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ setJMenuBar().

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ мСню ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ названия, Π·Π½Π°Ρ‡ΠΊΠΈ ΠΈ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π½Π° основС интСрфСйса AbstractAction. ВсС это прСдставлСно Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° мСню JMenuBar

Π‘Ρ‚Ρ€ΠΎΠΊΠ° мСню JMenuBar прСдставляСт ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΡ‚ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ самыми свойствами. JMenuBar ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ мСню. Π’ строку мСню ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ всСвозмоТныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ надписи со Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ списки. Π’ качСствС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° располоТСния JMenuBar ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ BoxLayout с располоТСниСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² JMenuBar Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ΄Π°ΡŽΡ‰Π΅Π΅ мСню ΠΈ ΠΌΠ΅Ρ‚ΠΊΡƒ с надписью.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся простоС Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню, послС Ρ‡Π΅Π³ΠΎ Π² JMenuBar помСщаСтся надпись с ΠΈΠΊΠΎΠ½ΠΊΠΎΠΉ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ прилоТСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°Ρ….

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для создания элСмСнтов ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ мСню «Π€Π°ΠΉΠ»» ΠΈ «Π Π΅Π΄Π°ΠΊΡ‚ирования» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ createMenuItems, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² пСрСдаСтся ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив строк с описаниСм ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСт элСмСнт мСню с «ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΎΠΉ» ΠΈ «Π°ΠΊΡΠ΅Π»Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ». ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π² элСмСнт мСню ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ createSubmenus() создаСт Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ.

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ строки мСню Π² интСрфСйсС ΠΎΠΊΠ½Π° осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setJMenuBar(). ΠœΠ΅Ρ‚ΠΎΠ΄ этот ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ JRootPane, которая обСспСчиваСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ строка мСню Π·Π°Π½ΠΈΠΌΠ°Π»Π° ΠΏΠΎΠ΄ΠΎΠ±Π°ΡŽΡ‰Π΅Π΅ Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ ΠΎΠΊΠ½Π°, оставляя всС ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ пространство Π² ΠΏΠ°Π½Π΅Π»ΠΈ содСрТимого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ.

Π’ мСню элСмСнты ΠΌΠΎΠΆΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° addSeparator(). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ Π²Π½Π΅ мСню Π² качСствС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ….

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ мСню

Π’ прСдставлСнных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄ формирования мСню Β«Ρ€Π°Π·Π΄ΡƒΠ²Π°Π΅Ρ‚Β» Ρ‚Π΅Π»ΠΎ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. А Ссли ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π½Π΅ послСдняя Swing-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ‚ΠΎ цСлСсообразно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ мСню «Π½Π° всС случаи ΠΆΠΈΠ·Π½ΠΈ», ΠΈΠ»ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ этому. Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈ описаниС мСню вынСсти ΠΈΠ· основного ΠΊΠΎΠ΄Π°.

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ описана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ XML-Ρ„Π°ΠΉΠ»Π° ΠΈ создатСля мСню ΠΈΠ· XML-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ XML-Ρ„Π°ΠΉΠ»Π° XMLReader.java

Π’ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ XML-Ρ„Π°ΠΉΠ»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ конструкторы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ мСню. Особо хочСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² конструкторы Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ XML-Ρ„Π°ΠΉΠ»Π° «charset».

XML-Ρ„Π°ΠΉΠ» описания мСню menu.xml

Π€Π°ΠΉΠ» описания мСню ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ наимСнования Π² ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»Π° ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ. XML-Ρ„Π°ΠΉΠ» описания мСню ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

ΠšΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ описания мСню являСтся элСмСнт с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «menubar», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ строку мСню, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ всС Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ мСню ΠΈ Π΅Π³ΠΎ элСмСнты. ВсС Ρ‚Π΅Π³ΠΈ описания мСню ΠΈΠΌΠ΅ΡŽΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ «name» (имя). По ΠΈΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ поиск элСмСнта. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ поискС элСмСнтов мСню Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ ошибок, ΠΈΠΌΠ΅Π½Π° всСх элСмСнтов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

К строкС мСню «menubar» ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ мСню : для XML-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ элСмСнтов-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «menu». Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… мСню Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° свойства: text (тСкст мСню) ΠΈ mnemonic (символ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ). Π”Π°Π½Π½Ρ‹Π΅ свойства Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² элСмСнта «menu».

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТной иСрархичСской систСмы мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты Ρ‚Π΅Π³Π° «menu» Π±Ρ‹Π»ΠΈ элСмСнтами Ρ‚ΠΈΠΏΠ° «menuitem» (ΠΏΡƒΠ½ΠΊΡ‚ мСню) ΠΈΠ»ΠΈ «menu» (Π²Π΅Ρ‚ΠΊΠ° мСню). Π’Π΅Π³ «menuitem» опрСдСляСт элСмСнт мСню, ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. А Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ Ρ‚Π΅Π³ «menu» позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ мСню Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽΡΡ Π²Π΅Ρ‚ΠΊΡƒ мСню.

Π’Π΅Π³ «menuitem» соддСрТит большС всСго Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² : для Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст мСню ΠΈ символ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ, Π½ΠΎ ΠΈ сочСтаниС клавиш быстрого доступа (accelerator), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ для отобраТСния Π² систСмном мСню (enabled). Π’ качСствС особых элСмСнтов мСню Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ мСню «separator», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° XML-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°

Анализатор XML-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° наслСдуСт всС свойства DefaultHandler ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ мСню menuStorage Ρ‚ΠΈΠΏΠ° Map.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСстирования Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° мСню

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ тСстирования Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ XMLReader для чтСния Ρ„Π°ΠΉΠ»Π° мСню с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8. ПослС этого ΠΎ прСдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создатСля мСню XMLMenuCreater с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ конструктору Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° источника XML-Ρ„Π°ΠΉΠ»Π°. XMLMenuCreater выполняСт Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ XML-содСрТимого (ΠΌΠ΅Ρ‚ΠΎΠ΄ parse) с созданиСм мСню ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ JMenuBar ΠΊ интСрфСйсу. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ мСню ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ (addActionListener), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π±Ρ€Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : исходный ΠΊΠΎΠ΄ формироватСля мСню XMLMenuCreater Π½Π° страницС сайта Π½Π΅ приводится, Π½ΠΎ ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π°Ρ€Ρ…ΠΈΠ² всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², рассмотрСнных Π½Π° страницС.

ПанСли инструмСнтов, JToolBar

ПанСли инструмСнтов ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² интСрфСйсС, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π°Π±ΠΎΡ€Π° ΠΊΠ½ΠΎΠΏΠΎΠΊ особого Π²ΠΈΠ΄Π°: Π±Π΅Π· надписСй, Π½ΠΎ с подсказками ΠΈ с нСбольшими изобраТСниями. НаТатиСм Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ инициируСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ прилоТСния. Π’ панСлях инструмСнтов Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованными ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Swing ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов прСдставлСны ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JToolBar. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, способныС ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΏΡ€ΠΈΡƒΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов JToolBar

ПанСль инструмСнтов JToolBar β€” это самый ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swing ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ с Π»ΡŽΠ±Ρ‹ΠΌ подходящим ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ располоТСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ слоТности, динамичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΡ…, составляя Π½Π°Π±ΠΎΡ€ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΈΠ· любого ΠΈΡ… количСства.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создадим Ρ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ располоТим ΠΈΡ… вмСстС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π²Π΅ Π½Π΅ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ свСрху, Π° ΠΏΠΎΠ΄ Π½ΠΈΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ пСрСмСщаСмая JToolBar.

Π‘Π°ΠΌΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов нСслоТны ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ особых ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² : ΠΎΠ½ΠΈ состоят ΠΈΠ· настроСнных ΠΊΠΎΠΌΠ°Π½Π΄ Action, ΠΊΠ½ΠΎΠΏΠΎΠΊ JButton, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ ΠΏΠ°Π½Π΅Π»ΠΈ размСстили Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список JComboBox. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ послС добавлСния Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ панСль инструмСнтов Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ (glue).

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° прСдставлСн Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ :

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Для добавлСния раздСлитСля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ addSeparator(). Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ раздСлитСля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Для этого слСдуСт ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ addSeparator() ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Dimension, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ раздСлитСля. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² мСню: для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отдСлСния Π³Ρ€ΡƒΠΏΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия.

Кнопки Π² панСль инструмСнтов ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JButton с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° add(), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ экзСмпляр ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Action с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° add(). ИспользованиС Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Action Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ позволяСт ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС настройку внСшнСго Π²ΠΈΠ΄Π° элСмСнта управлСния ΠΈ описаниС дСйствия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ выполняСт. Π­Ρ‚ΠΎ особСнно Π²Π΅Ρ€Π½ΠΎ для ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов: Π² классС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ задаСтся Π·Π½Π°Ρ‡ΠΎΠΊ, тСкст подсказки ΠΈ описываСтся дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°. ПослС этого остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² панСль инструмСнтов. Если ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ внСшний Π²ΠΈΠ΄ ΠΈΠ»ΠΈ дСйствиС, Ρ‚ΠΎ это всС скрыто Π² ΠΎΠ΄Π½ΠΎΠΌ классС.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ полосу с Π»Π΅Π²ΠΎΠ³ΠΎ края Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ вСшки пСрСмСщСния : с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ (drag and drop) панСль инструмСнтов ΠΈ «ΠΏΡ€ΠΈΡ‡Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ» (drag and dock) ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ края ΠΎΠΊΠ½Π°, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Β«ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΒ». ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ ΠΏΡ€ΠΈΡ‡Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊ краям ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ располоТСниС BorderLayout. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ совСт: Ссли Π² вашСм ΠΎΠΊΠ½Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ краям ΠΎΠΊΠ½Π°, примСняйтС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ располоТСния BorderLayout, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма ΠΎΠ·Π°Π΄Π°Ρ‡Π΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ совсСм Π½Π΅ Ρ‚Π°ΠΌ, ΠΊΡƒΠ΄Π° ΠΎΠ½ ΠΈΡ… пСрСтаскиваСт.

ПанСли инструмСнтов слСдуСт Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π±Ρ‹Π»ΠΈ располоТСны Π² ΠΏΠ°Π½Π΅Π»ΠΈ с Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌ располоТСниСм с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ… распоркой Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 5 пиксСлов.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², рассмотрСнных Π½Π° страницС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь (12.5 Кб).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ Java

Π’Ρ‹ здСсь: Главная >> Java-ΡΠ°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ >> Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° java

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° java

Рассмотрим созданиС мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° java. awt. Для создания ΠΏΠ°Π½Π΅Π»ΠΈ мСню сущСствуСт класс MenuBar. На эту панСль помСщаСтся ΠΎΠ΄Π½ΠΎ Π˜Π›Π˜ нСсколько Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… мСню (класс Menu). ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ (элСмСнты) мСню ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ: простой элСмСнт мСню (класс MenuItem) ΠΈΠ»ΠΈ Ρ„Π»Π°ΠΆΠΎΠΊ/ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ (класс CheckboxMenuItem). Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ javax. swing Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ мСню. Π—Π° построСниС ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ класс JMenuBar, Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ΅Π½ΡŽβ€” JMenu, Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠ΅Π½ΡŽβ€” JMenuItem, JCheckboxMenuItem ΠΈ JRadioButtonMenuItem. Рассмотрим созданиС мСню Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ этой Π³Π»Π°Π²Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°ΠΉΡ‚Π΅ имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «Menu», Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ β€” «MyMenu».

2. Рассмотрим созданиС мСню ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° javax. swing (Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ мСню ΠΎΠ±ΠΎΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΡ…ΠΎΠΆΠΈ). ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, располоТСнный Π² сСкции Swing Containers ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ подсказкой javax.swing. JMenuBar. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ панСль мСню, ΠΈ Π² ΠΎΠΊΠ½Π΅ структуры Ρƒ Ρ€Π°Π·Π΄Π΅Π»Π° Menu появился Π·Π½Π°Ρ‡ΠΎΠΊ jMenuBarl. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ структуры Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ this ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ свойства JMenuBar jMenuBarl.

3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π° Ρ€Π°Π·Π° Π½Π° Π·Π½Π°Ρ‡ΠΊΠ΅ jMenuBarl. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π΄Π²Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° β€” ΠΎΠ΄ΠΈΠ½ располагаСтся свСрху, Π½Π° Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ мСню, Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½ΠΈΠΆΠ΅. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠ΅ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ First. Π‘ΠΏΡ€Π°Π²Π° появится ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располагаСтся Π½ΠΈΠΆΠ΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠ° First. НабСритС слово Print. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠ΅ ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ слово Second. На ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅, располоТСнном Π½ΠΈΠΆΠ΅ Π΅Π³ΠΎ, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Hello. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Checkable/Uncheckable Item. Около ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠ° появится Π³Π°Π»ΠΎΡ‡ΠΊΠ°. Π’Π½ΠΎΠ²ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π½Π΅ΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свойство selected Π½Π° True. Π§Ρ‚ΠΎ это всС Ρ‚Π°ΠΊΠΎΠ΅?

ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, располоТСнныС Π½Π° Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ мСню, β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ JMenu. ВсС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π²Π½ΠΈΠ·Ρƒβ€” ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ элСмСнты. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ JMenuItem, ΠΎΠ΄Π½Π°ΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JMenu, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты (Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ подмСню).
МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JCheckboxMenuItem (Ρ‚Π°ΠΊ ΠΌΡ‹ поступили с элСмСнтом Hello) ΠΈΠ»ΠΈ JRadioButtonMenuItem. МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ β€” Separator. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Swing-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ большС возмоТностСй, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java.awt. Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ подсказки ΠΈ Π΄Ρ€.

4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° элСмСнтС Print. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° асtionPerformed (выполняСтся ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ этого элСмСнта, Ρ‚.Π΅. Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π½Π° Π½Π΅ΠΌ).

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

public void jMenuIteml_actionPerformed(ActionEvent e)
< if (jCheckBoxMenuIteml.getState())
this.setTitle(«Print Hello»);
else
this.setTitle(» Print»);
>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ поэкспСримСнтируйтС с Π½Π΅ΠΉ. Один ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΅Π΅ выполнСния ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 8.6.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Рис. 8.6. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° создания Menu

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ для создания мСню ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java. awt Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° javax. swing, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… мСньшС свойств.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ мСню ΠΊ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.
1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JMenuBar. УстановитС для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° this свойство JMenuBar Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ jMenuBarl. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ мСню ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, прСдставлСнному Π² листингС 8.3.

Commands β€” класс JMenu
Buy β€” класс JMenuItem Goods β€” класс JMenu
β€’ Potatoes β€” класс JCheckboxMenuItem
β€’ Carrots β€” класс JCheckboxMenuItem
β€’ Tomatoes β€” класс JCheckboxMenuItem
β€’ Cucumbers β€” класс JCheckboxMenuItem
β€’ Radishes β€” класс JCheckboxMenuItem
β€’ Red currants β€” класс JCheckboxMenuItem
β€’ Black Currants β€” класс JCheckboxMenuItem
β€’ Raspberries β€” класс JCheckboxMenuItem
β€’ Strawberries β€” класс JCheckboxMenuItem
β€’ Mango β€” класс JCheckboxMenuItem
β€’ Pepsi-Cola β€” класс JRadioButtonMenuItem (свойство Selected: True)
β€’ Coca-Cola β€” класс JRadioButtonMenuItem (свойство Selected: False)
β€’ Fanta β€” класс JRadioButtonMenuItem (свойство Selected: False)
β€’ 7UP β€” класс JRadioButtonMenuItem (свойство Selected: False)
β€’ Mountain Dew β€” класс JRadioButtonMenuItem (свойство Selected: False)
β€’ STIMOROL PRO-Z β€” класс JRadioButtonMenuItem (свойство Selected: True)
β€’ DIROL β€” класс JRadioButtonMenuItem (свойство Selected: False)
β€’ ORBIT β€” класс JRadioButtonMenuItem (свойство Selected: False)

3. ΠŸΠΎΡ‰Π΅Π»ΠΊΠ°ΠΉΡ‚Π΅ Π½Π° всСх Ρ„Π»Π°ΠΆΠΊΠ°Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΡ… ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ тСкстовом ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ΄, прСдставлСнный Π² листингС 8.4.

Листинг 8.4.
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСню Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ описано, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π½Π° Π½Π΅ΠΉ. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠΌ, прСдставлСнным Π² листингС 8.5.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ для создания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡ‰Π΅Π»ΠΊΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события actionPerf ormed Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Events.

Листинг 8.5.
ВСкст ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ аксСлСратор (Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ) для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Buy (ΠΈΠ»ΠΈ Account). Для этого Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Buy Π² мСню Π² ΠΎΠΊΠ½Π΅ структуры (jMenuIteml) ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ ΠΈΠΌΠ΅Π½ΠΈ свойства Accelerator. УстановитС Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Accelerator всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 8.7.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Рис. 8.7. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ аксСлСратора для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСню

6. Π”Π°Π»Π΅Π΅ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ОК ΠΈ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π½Π° рисункС 8.8.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java

Рис. 8.8. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния листинга 8.5

Π‘Π΅Ρ€Π³Π΅ΠΉ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Ρ†Π΅Π²
03.03.2011

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ консольноС мСню Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ switch

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈ стартС, ΠΏΡ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° switch
Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² консоли тСкстовоС мСню для выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ
ниТСпСрСчислСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΈΠ· всСх Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 1 Π΄ΠΎ 99, Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π½Π°
экран Π² строку.
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива ΠΈΠ· 20-Ρ‚ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π½Π°
экран.
НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π»Π΅Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π²Π½Ρ‹
Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ β€” суммС Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ….
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΈΠ· 8 строк ΠΏΠΎ 5 столбцов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ·
случайных Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈΠ· ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [10;99]+. ВывСсти массив Π½Π° экран.
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° мСню:
Β«1. Для создания массива ΠΈΠ· Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… числС Π½Π°ΠΆΠΌΠΈΡ‚Π΅ 1Β».
Β«2. Для создания массива ΠΈΠ· чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ 2Β»
Β«3. Для создания Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π½Π°ΠΆΠΌΠΈΡ‚Π΅ 3Β»
Β«4. Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· прилоТСния Π½Π°ΠΆΠΌΠΈΡ‚Π΅ 4.Β»
ПослС выполнСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π° экран Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ
Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ снова ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдлагаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· прилоТСния.

задания Ρ‚Π°ΠΊ я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вывСсти массивы ΠΈ Ρ‚.Π΄. Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΡΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· switch, ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· мСню ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиш. Π― Π½Π΅ Π΄Π°Π²Π½ΠΎ Π½Π°Ρ‡Π°Π» ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java ΠΈ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° курсах Π΄Π°Π»ΠΈ. Ρ‚ΠΎΠ»ΠΊΠΎΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ объяснили ΠΎΠ΄Π½ΠΎ занятиС всСго Π±Ρ‹Π»ΠΎ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² мСню, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ switch
Π― написал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран мСню блюд, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡ‹ выводится Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° java. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π½Π° javaУсловиС Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ switch
ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ условиС Ρ…-Ρƒ>0 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ case

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *