Code: Select all
increase.addActionListener(this::increasePoints);
Diese Zeile ist jedoch in meiner IDE rot gekennzeichnet und kompiliert nur, es sei denn, ich ändere die Methode erhöht, um einen Action-Event als Parameter zu akzeptieren:
Code: Select all
points++;
textField.setText(Integer.toString(points));
}
< /code>
Ursprünglich hatte ich: < /p>
private void increasePoints() {
points++;
textField.setText(Integer.toString(points));
}
< /code>
Meine Frage ist:
Muss es so geschrieben werden? Gibt es keinen saubereren oder besseren Weg? Warum genau muss ich einen ActionEvent -Parameter hinzufügen, auch wenn ich ihn nicht verwende? < /P>
Eine Klarstellung wäre sehr geschätzt! Ich versuche nicht nur zu verstehen, wie ich es beheben kann, sondern warum dies erforderlich ist.private void addListeners() {
increase.addActionListener(this::increasePoints);
// This version works too:
// increase.addActionListener(new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
// increasePoints();
// }
// });
decrease.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
decreasePoints();
}
});
}
private void increasePoints() {
points++;
textField.setText(Integer.toString(points));
}