import javax.swing.*;import java.awt.event.*;import java.awt.*;public class DatenVerwaltung extends JFrame { MyActionListener myActionListener = new MyActionListener(); JMenuBar Menu = new JMenuBar(); JMenu menuDatei = new JMenu("Datei"); JMenuItem openDatei = new JMenuItem("Datei Öffnen..."); JMenuItem saveDatei = new JMenuItem("Datei Speichern..."); JMenuItem endDatei = new JMenuItem("Beenden"); public DatenVerwaltung () { super("Datenverwaltung"); JPanel pane = new JPanel(); FlowLayout fl = new FlowLayout(FlowLayout.LEFT); pane.setLayout(fl); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(300,300,500,500); pane.add(Menu); Menu.add(menuDatei); menuDatei.add(openDatei); openDatei.addActionListener(myActionListener); // Diese Zeile neu: myActionListener.setReferringObject( this ); menuDatei.add(saveDatei); saveDatei.addActionListener(myActionListener); menuDatei.add(endDatei); setContentPane(pane); show(); } public static void main(String[] args) { DatenVerwaltung dv = new DatenVerwaltung(); } }
import java.awt.event.*;import javax.swing.*;import java.awt.*;public class MyActionListener implements ActionListener{ // geändert: DatenVerwaltung datenVerwaltung; // neuer Block/neue Methode: public void setReferringObject(DatenVerwaltung dv) { datenVerwaltung = dv; } // Ende neuer Block public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if ( src instanceof JMenuItem ) { JMenuItem item = (JMenuItem)src; if (item == datenVerwaltung.openDatei) { System.out.println("Öffnen"); } else if (item == datenVerwaltung.saveDatei) { System.out.println("Speichern"); } } }}