Hallo liebe Community,
ich habe mal eine Frage -laut unserem Prof. müssen wir unser funktionierendes Spiel umstrukturieren - da wir nicht das MVC Pattern eingehalten haben.
Nun möchte ich euch Fragen, wie ihr es realsieren würdet.
Ich habe ein MainFrame und benutze das CardLayout.
Ich habe ein StartPanel:
Jetzt muss ich den buttons einen Listener geben, damit dieser ja reagiert. Gebe ich dem einfach einen Actionlistener.
Model:
Ich finde das aber unheimlich hässlich und möchte da einen anderen Ansatz haben, gerne auch links wo ich schauen kann. Aber brauche mal ein Komplettes MVC projekt wo sowas gelöst ist.
Ich habe einen weiteren Ansatz, aber der ist auch ...boah genau sowas.
Beispielsweise, adde ich den Actionlistener nicht im Panel sondern :
in einem Controller.
In dem kenne ich das MainFrame und gehe über dieses an das StartPanel und hole mir den Button.
Das instanziieren des Listners passiert denn in dem Controller und ich adde diesen dann direkt.
Welchen Ansatz würdet ihr wählen, oder kennt ihr bessere? Danke vielen gruß Spin
ich habe mal eine Frage -laut unserem Prof. müssen wir unser funktionierendes Spiel umstrukturieren - da wir nicht das MVC Pattern eingehalten haben.
Nun möchte ich euch Fragen, wie ihr es realsieren würdet.
Ich habe ein MainFrame und benutze das CardLayout.
Java:
public class MainFrame(){
// instanziieren der panels und so weiter
// damit ich switchen kann brauch jedes panel oder jeder listener getLayout von MainFrame
// daher:
new StartPanel(this);
// weiter brauche ich ein Model , damit ich änderungen machen kann nach mausklick
// daher :
new StartPanel(this,Foo)
}
Ich habe ein StartPanel:
Java:
public class StartPanel {
public StartPanel(MainFrame frame , Foo foo){
// buttons usw.
}
}
Jetzt muss ich den buttons einen Listener geben, damit dieser ja reagiert. Gebe ich dem einfach einen Actionlistener.
Java:
button.addActionListener(new MyActionListener(frame,foo));
Java:
//Konstruktor
MyActionListener(Component c, Foo foo){
/// über componente komme ich an den button.
// wenn der button gedrückt wird , soll in einem model FOO was geändert werden
// mein CardLayout bekomme ich :
this.frame.getLayout()
// also hier :
this.foo.zahl = 6;
}
Model:
Java:
public class Foo{
public int zahl = 0;
}
Ich finde das aber unheimlich hässlich und möchte da einen anderen Ansatz haben, gerne auch links wo ich schauen kann. Aber brauche mal ein Komplettes MVC projekt wo sowas gelöst ist.
Ich habe einen weiteren Ansatz, aber der ist auch ...boah genau sowas.
Beispielsweise, adde ich den Actionlistener nicht im Panel sondern :
in einem Controller.
In dem kenne ich das MainFrame und gehe über dieses an das StartPanel und hole mir den Button.
Das instanziieren des Listners passiert denn in dem Controller und ich adde diesen dann direkt.
Java:
public class GameController{
new MainFrame()
new Game()
MyActionListener l = new MyActionListener(mainframe, game);
// holen des buttons
mainframe.getStartPanel().getButton.addActionListener(l);
}
Welchen Ansatz würdet ihr wählen, oder kennt ihr bessere? Danke vielen gruß Spin