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/Listing3608.java | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/Listing3608.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/Listing3608.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/Listing3608.java b/Master/Reference Architectures and Patterns/hjp5/examples/Listing3608.java new file mode 100644 index 0000000..b7939dd --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/Listing3608.java @@ -0,0 +1,65 @@ +/* Listing3608.java */ + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +public class Listing3608 +extends JFrame +implements ActionListener +{ + public Listing3608() + { + super("Swing-Menütest"); + addWindowListener(new WindowClosingAdapter(true)); + JMenuBar menubar = new JMenuBar(); + menubar.add(createFileMenu()); + setJMenuBar(menubar); + } + + public void actionPerformed(ActionEvent event) + { + System.out.println(event.getActionCommand()); + } + + //---Private Methoden--------------- + private JMenu createFileMenu() + { + JMenu ret = new JMenu("Datei"); + ret.setMnemonic('D'); + JMenuItem mi; + //Öffnen + mi = new JMenuItem("Öffnen", 'f'); + setCtrlAccelerator(mi, 'O'); + mi.addActionListener(this); + ret.add(mi); + //Speichern + mi = new JMenuItem("Speichern", 'p'); + setCtrlAccelerator(mi, 'S'); + mi.addActionListener(this); + ret.add(mi); + //Separator + ret.addSeparator(); + //Beenden + mi = new JMenuItem("Beenden", 'e'); + mi.addActionListener(this); + ret.add(mi); + return ret; + } + + private void setCtrlAccelerator(JMenuItem mi, char acc) + { + KeyStroke ks = KeyStroke.getKeyStroke( + acc, Event.CTRL_MASK + ); + mi.setAccelerator(ks); + } + + public static void main(String[] args) + { + Listing3608 frame = new Listing3608(); + frame.setLocation(100, 100); + frame.setSize(300, 200); + frame.setVisible(true); + } +} \ No newline at end of file -- cgit v1.2.3