https://github.com/rabestro/jetbrains-academy-console-menu-system
The very simple one-class console menu system for JetBrains Academy projects.
https://github.com/rabestro/jetbrains-academy-console-menu-system
Last synced: 7 months ago
JSON representation
The very simple one-class console menu system for JetBrains Academy projects.
- Host: GitHub
- URL: https://github.com/rabestro/jetbrains-academy-console-menu-system
- Owner: rabestro
- Created: 2020-08-31T12:22:16.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-11-22T09:16:19.000Z (over 5 years ago)
- Last Synced: 2024-12-28T05:25:31.287Z (over 1 year ago)
- Language: Java
- Size: 159 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Console Menu System
A simple class for building menus for console applications.This class was designed to make it easy to create simple console menus for educational projects in particular the project of the JetBrains Academy).
### Usage example:
```java
import ui.SimpleMenu;
public class Main {
public static void main(String[] args) {
final var bigClass = new BigClass("Some Configuration");
new SimpleMenu()
.add("Play the guessing game", new Game("Guessing Game"))
.add("Play the sudoku", new Game("Sudoku"))
.add("Search for an animal", Main::searchAnimal)
.add("Entering Submenu", new SimpleMenu().onlyOnce()
.set(SimpleMenu.Property.TITLE, "--- Sub-Menu Title ---")
.set(SimpleMenu.Property.EXIT, "Back to main menu")
.add("The sub-menu entry", new SomeTask())
.add("A simple sub-menu task", () -> System.out.println("A simple task"))
.add("First Task in Big Class", bigClass::firstTask)
.add("Second Task in Big Class", bigClass::secondTask))
.addExit()
.run();
}
static void searchAnimal() {
System.out.println("Search for an animal");
}
}
```
## Main classes
- Menu - base class for Menu. Uses System.out.println.
- internal public enum Property - describes properties you can set for menu
- internal protected class MenuEntry - describes menu item
### Additional classes
- UI - interface for very simple text UI. Supports println("text/format", ...args)
- ConsoleUI - implementation for UI
- LocalUI - implementation with i18n & l10n support. You can easily add support for many languages.
- ConsoleMenu - implementation of Menu interface based on ConsoleUI
- LocalMenu - implementation based on LocalUI.
## UML Diagrams
