Miriam: JMenu eintrag anklicken

Beitrag lesen

Hallo,

du musst erstmal dem JMenuItem eine Action zuordnen, der die Methode public void actionPerformed enthält. Dazu hast du zwei Möglichkeiten.

1. Einfach einen ActionListener einfügen:

public Main() {
    frmStart frame = new frmStart();
    ImageIcon neu = new ImageIcon("./logo.gif");
    ImageIcon clo = new ImageIcon("./close.gif");

JMenuBar mbar = new JMenuBar();
    JMenu quick = new JMenu( "Quick" );
    quick.add(new JMenuItem("Pendenz erfassen", neu));
    quick.addSeparator();
    quick.add(new JMenuItem("Beenden", clo));
    mbar.add( quick );
    frame.setJMenuBar( mbar );

//ActionListener in deiner Main-Klasse
       ActionListener meinListener = new ActionListener(){
           public void actionPerformed(ActionEvent e){
               if(e.getActionCommand().equals("Pendenz erfassen")){
                   //was soll er tun
               }
               //für weitere MenuItems fortsetzen und eventuell
               //am Ende eine else-Methode angeben
           }
       }
...

}

2. Oder du machst eine extra Klasse einer Action, die die AbstractAction erweitert:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;

public class ExampleAction extends AbstractAction {
    public ExampleAction(String text, Icon icon){
        super(text,icon);
    }

public void actionPerformed(ActionEvent e){
        if(e.getActionCommand().equals("Pendenz erfassen")){
            //was soll er tun
        }
    }
}

Diese nutzt du dann so in deiner Main-Klasse:

public Main() {
    frmStart frame = new frmStart();
    ImageIcon neu = new ImageIcon("./logo.gif");
    ImageIcon clo = new ImageIcon("./close.gif");

JMenuBar mbar = new JMenuBar();
    JMenu quick = new JMenu( "Quick" );

quick.add(new JMenuItem(new ExampleAction("Pendenz erfassen",neu)));

quick.addSeparator();

quick.add(new JMenuItem(new ExampleAction("Beenden", clo)));

mbar.add( quick );
    frame.setJMenuBar( mbar );

...

}

Ich hoffe dir damit geholfen zu haben.

Viele Grüße,

Miriam