1 svar
202 visningar
TB16 behöver inte mer hjälp
TB16 182 – Fd. Medlem
Postad: 21 jan 2018 11:35

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);
}

Lindehaven 820 – Lärare
Postad: 17 apr 2018 11:51

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:

Svara
Close