Tengo el archivo Main.java así:
import javax.swing.SwingUtilities;
import controllers.Controller;
import models.Model;
import views.View;
public class Main {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Model model = new Model();
View view = new View();
Controller c = new Controller(model, view);
c.updateGUI();
}
});
}
}
Tengo el archivo Controller.java, dentro del package o folder controllers, así:
package controllers;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import views.View;
import models.Model;
public class Controller {
private Model model;
private View view;
//private ActionListener actionListener;
public Controller(Model m, View v){
this.model = m;
this.view = v;
}
public void updateGUI(){
ActionListener actionListener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
doAction();
}
};
view.getButton().addActionListener(actionListener);
}
private void doAction(){
String myString = view.getEuros();
double euros = Double.parseDouble(myString);
double dollars = model.convertMoney(euros);
view.setEurosReadOnly(euros+"");
view.setDollarsReadOnly(dollars+"");
}
}
Mi pregunta es que si creará una clase que implementa ActionListener, donde iría: en views (el package/folder) o en controllers (el package/folder)?
La clase sería más o menos la siguiente:
public class FirstHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
doAction();
}
private void doAction(){
String myString = view.getEuros();
double euros = Double.parseDouble(myString);
double dollars = model.convertMoney(euros);
view.setEurosReadOnly(euros+"");
view.setDollarsReadOnly(dollars+"");
}
}
Yo pienso que iría en controladores... Desde Controller.java creas una instancia de de la clase FirstHandler y en el constructor le pasas Model y View. Pero no estoy seguro. He visto info en internet y algunos aseguran que tiene que ir en las vistas, pero de esa forma creo que tendría que cambiar varias cosas. Y otros dicen que va en los controladores.
Gracias.