Ich habe eine knifflige Aufgabe in Java zu tun. Ich muss auf Mausklick mit dem Code reagieren, der als Lambda-Ausdruck übergeben wird (print 'ok' auf der Konsole) Das Problem ist, dass ich die Hauptklasse nicht ändern kann, ich muss die Klasse/Schnittstelle vorbereiten, um den Lambda-Ausdruck zu erhalten. Ich habe versucht, Tutorials auf Lambda-Ausdrücke zu folgen, aber ich bekomme immer Fehler über die Verwendung von nicht-funktionalen Schnittstelle. Main:Funktionale Schnittstelle in Java, um auf Mausklick zu reagieren
import javax.swing.*;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(()-> {
JFrame f = new JFrame();
JButton b = new JButton("Mouse Click");
b.addMouseListener ((MousePressListener) e -> System.out.println("ok"));
f.add(b);
f.pack();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setVisible(true);
}
);
}
}
Könnten Sie Jungs mit mehr Erfahrung mir mit einigen Ratschlägen helfen könnten, wie könnte ich anfangen mit diesem Problem zu arbeiten? Ich begann mit einer Klasse zu schaffen, aber dann habe ich verloren (ich diese Klasse tat und ‚Geräte‘ so jetzt verwendeten Typ MousePressListener auch Mouselistener oder? Eingeben)
public class MousePressListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
Dank das ist genau das, was ich brauchte, – jawjaw