From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/Listing1017.java | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java b/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java new file mode 100644 index 0000000..78f572c --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java @@ -0,0 +1,89 @@ +/* Listing1017.java */ + +class MenuEntry1 +{ + protected String name; + + public MenuEntry1(String name) + { + this.name = name; + } + + public String toString() + { + return name; + } +} + +class IconizedMenuEntry1 +extends MenuEntry1 +{ + private String iconName; + + public IconizedMenuEntry1(String name, String iconName) + { + super(name); + this.iconName = iconName; + } +} + +class CheckableMenuEntry1 +extends MenuEntry1 +{ + private boolean checked; + + public CheckableMenuEntry1(String name, boolean checked) + { + super(name); + this.checked = checked; + } +} + +class Menu1 +extends MenuEntry1 +{ + MenuEntry1[] entries; + int entryCnt; + + public Menu1(String name, int maxElements) + { + super(name); + this.entries = new MenuEntry1[maxElements]; + entryCnt = 0; + } + + public void add(MenuEntry1 entry) + { + entries[entryCnt++] = entry; + } + + public String toString() + { + String ret = "("; + for (int i = 0; i < entryCnt; ++i) { + ret += (i != 0 ? "," : "") + entries[i].toString(); + } + return ret + ")"; + } +} + +public class Listing1017 +{ + public static void main(String[] args) + { + Menu1 filemenu = new Menu1("Datei", 5); + filemenu.add(new MenuEntry1("Neu")); + filemenu.add(new MenuEntry1("Laden")); + filemenu.add(new MenuEntry1("Speichern")); + + Menu1 confmenu = new Menu1("Konfiguration", 3); + confmenu.add(new MenuEntry1("Farben")); + confmenu.add(new MenuEntry1("Fenster")); + confmenu.add(new MenuEntry1("Pfade")); + filemenu.add(confmenu); + + filemenu.add(new MenuEntry1("Beenden")); + + System.out.println(filemenu.toString()); + } +} \ No newline at end of file -- cgit v1.2.3