Hallo,
Ich habe wieder mal ein kleines Problem, genauer gesagt ein größeres. Ich habe eine klare Unterteilung in Model-View-Controll (wem das nichts sagt: auch nicht so unheimlich wichtig, fest steht nur, ich muss im Prinzip genau das machen, was ich jetzt erkläre und darf nicht groß davon abweichen).
Normalerweise ist es ja kein großes Problem, bei einer graphischen Oberfläche ein paar ActionEvents abzufangen, indem man sie an Buttons oder an die Tastatur knüpft, so z.B. :
Wenn man jetzt noch z.B. andere Objekte zu dieser Klasse hinzufügt, so kann man diese wieder über deren Methoden ansteuern - soweit klar. Es ist also kein Problem, in der "Hierarchie" der Klassen von Oben nach Unten Signale z.B. mit Gettern zu schicken und sie ggf. mit Settern zu verändern.
Mein Problem ist jetzt aber das Umgekehrte: Wie stelle ich es an, dass ein erzeugtes Objekt (bei mir das "Modell") ein Event auslöst, welches mein erzeugendes Objekt (bei mir der "Controller") anspricht?
Das man einen Button z.B. mit
hinzufügen kann und später dann abfangen kann ist mir vollkommen klar, aber ich habe keinen Button und ich möchte auch von meiner erzeugten Instanz ganz verschiedene Dinge steuern können. Dazu brauche ich vermutlich ein Interface, habe aber keine Ahnung, wie das hier geht.
Bitte helft mir...
Ich habe wieder mal ein kleines Problem, genauer gesagt ein größeres. Ich habe eine klare Unterteilung in Model-View-Controll (wem das nichts sagt: auch nicht so unheimlich wichtig, fest steht nur, ich muss im Prinzip genau das machen, was ich jetzt erkläre und darf nicht groß davon abweichen).
Normalerweise ist es ja kein großes Problem, bei einer graphischen Oberfläche ein paar ActionEvents abzufangen, indem man sie an Buttons oder an die Tastatur knüpft, so z.B. :
Java:
import java.awt.event.*;
public class sowieso implements KeyListener{
public void keyTyped(KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_L) {
System.out.println("Wow, du hast voll cool die L-Taste gedrückt! Hol dir ein Stück Schoko!");
}
}
Wenn man jetzt noch z.B. andere Objekte zu dieser Klasse hinzufügt, so kann man diese wieder über deren Methoden ansteuern - soweit klar. Es ist also kein Problem, in der "Hierarchie" der Klassen von Oben nach Unten Signale z.B. mit Gettern zu schicken und sie ggf. mit Settern zu verändern.
Mein Problem ist jetzt aber das Umgekehrte: Wie stelle ich es an, dass ein erzeugtes Objekt (bei mir das "Modell") ein Event auslöst, welches mein erzeugendes Objekt (bei mir der "Controller") anspricht?
Das man einen Button z.B. mit
Java:
b.addActionListener(new ActionListener{
public void actionPerformed(ActionEvent e)
{
System.out.println("You clicked the button");
}
});
hinzufügen kann und später dann abfangen kann ist mir vollkommen klar, aber ich habe keinen Button und ich möchte auch von meiner erzeugten Instanz ganz verschiedene Dinge steuern können. Dazu brauche ich vermutlich ein Interface, habe aber keine Ahnung, wie das hier geht.
Bitte helft mir...