1. Меню (Menu)

В JavaFX менюто представлява графичен компонент за организиране на команди, който позволява на потребителя да избира действия чрез йерархична структура от елементи. Менюто обикновено се разполага в горната част на приложението и служи за достъп до основната функционалност.

Менюто в JavaFX е част от сценичната графична архитектура (Scene Graph) и се състои от взаимосвързани обекти, които реализират принципа на композиция.


1.2. Основни компоненти

Меню системата в JavaFX включва три основни класа:

1.1. MenuBar

MenuBar представлява контейнерен компонент, който съдържа едно или повече менюта (Menu). Той визуализира хоризонтална лента, в която са разположени имената на отделните менюта.

Характеристики:

  • служи като коренов контейнер за менюта
  • може да съдържа множество обекти от тип Menu
  • обикновено се поставя в горната част на layout (напр. BorderPane)

1.2. Menu

Menu представлява падащо меню, което съдържа списък от елементи (MenuItem). При избор (клик) върху него се визуализира списък с команди.

Характеристики:

  • има текстово заглавие (напр. „Файл“, „Редакция“)
  • съдържа колекция от MenuItem
  • може да съдържа и подменюта (йерархична структура)

1.3. MenuItem

MenuItem представлява конкретна команда, която потребителят може да избере.

Характеристики:

  • изпълнява действие при избор
  • поддържа обработка на събития (Event Handling)
  • може да има икона, shortcut и др.

2. Йерархична структура

Менюто следва строго определена йерархия:

MenuBar | └── Menu | └── MenuItem

Тази структура отразява начина, по който елементите се композират в декора.


3. Дефиниране

Менюто може да бъде дефинирано декларативно чрез FXML, което позволява разделяне на потребителския интерфейс от бизнес логиката.

<MenuBar xmlns:fx="http://javafx.com/fxml" fx:controller="bg.tu_varna.sit.ps.lab8.task1.controller.MenuController">
    <menus>
        <Menu text="Файл">
            <items>
                <MenuItem text="Изход" onAction="#handleExit"/>
            </items>
        </Menu>
    </menus>
</MenuBar>

Controller клас

public class MenuController {
    @FXML
    private void handleExit() {
        System.exit(0);
    }
}
  • fx:controller указва управляващия клас
  • onAction=”#handleExit” свързва UI елемента с метод
  • Методът се извиква при избор на съответния MenuItem

This site uses Just the Docs, a documentation theme for Jekyll.