Hur fungerar event hantering i Java?
Jag har försökt läsa på om detta men är inte säker på att jag förstått. Här är min kod:
public void addListeners(){
ButtonListener listener = new ButtonListener();
btnStone.addActionListener(listener);
btnScissor.addActionListener(listener);
btnBag.addActionListener(listener);
btnNew.addActionListener(listener);
btnQuit.addActionListener(listener);
}
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event){
if(event.getSource() == btnStone){
controller.newChoice(0);
}
else if(event.getSource() == btnScissor){
controller.newChoice(1);
}
else if(event.getSource() == btnBag){
controller.newChoice(2);
}
else if(event.getSource() == btnNew){
controller.newGame();
}
else if(event.getSource() == btnQuit){
controller.finish();
}
}
Jag kallar på addListener metoden i min konstruktor.
Så jag gör en ny klass som heter ButtonListener vilken ärver ActionListener. Den har en metod som tar ett actionEvent e som parameter. Sedan har jag min selektion, den vet jag hur fungerar. Min addListener metod gör ett nytt ButtonListener objekt och sedan kallar jag på mina knappars (JButtons då egentligen) funktion som heter addActionListener som tar parametern listener. Vad innebär det? Jag kallar ju heller aldrig på ButtonListener i addListener metoden, så förstår inte hur den kommer in i bilden.