Händelsehantering i Java
Jag undrar hur metoden actionPerformed anropas när man registrerar ett objekt som en lyssnare med ett menu item? (Se kod nedan) Koden openMenu.addActionListener(this); medför väl att man registrerar klassen ImageViewer som lyssnare till händelsen att någon trycker på menyvalet 'Open'? Men hur triggar det igång actionPerformed? Har försökt läsa i dokumentationen för Java 8, men lyckas inte hitta något svar på min fråga.
public class ImageViewer implements ActionListener
{
private JFrame frame;
public ImageViewer()
{
makeFrame();
}
public void actionPerformed(ActionEvent event){
System.out.println("Menu item: " + event.getActionCommand());
}
public void makeFrame(){
frame = new JFrame("Image Viewer");
makeMenu(frame);
Container contentPane = new Container();
frame.pack();
frame.setVisible(true);
}
public void makeMenu(JFrame frame)
{
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu fileMenu1 = new JMenu("File");
menubar.add(fileMenu1);
JMenuItem openMenu = new JMenuItem("Open");
openMenu.addActionListener(this);
fileMenu1.add(openMenu);
}
Prova att söka efter "how is actionPerformed called?" på internet så får du några träffar som antagligen hjälper dig. Jag fann bl a dessa sidor som förklarar det på lite olika sätt: