Witam, pisałem ostatnio o odwzorowanie prostego programu ( javafx ) wraz ze wzorcem MVC, odpowiedzi nie uzyskałem, ale spróbowałem sam i oczywiście ... posypało się :) Nie potrafię ustawić akcji dla buttona znajdującego się w pliku widoku.
Kontroler:
public final class controller{
public view widok;
public model model_obj;
public controller(String[] args,view v, model m){
widok = v;
model_obj = m;
setEvent(); // Powinna się ustawić akcja ?
view.launch(args); // uruchamiam okienko ?
//gdzieś tu chyba się zepsuło ?
}
public final void setEvent(){
widok.signIn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
}
}
Widok:
public class view extends Application {
public Label userName, pw;
public TextField userTextField;
PasswordField pwBox;
Button signIn;
Scene scene;
@Override
public void start(Stage primaryStage) {
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
final Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
userName = new Label("User Name:");
grid.add(userName, 0, 1);
userTextField = new TextField();
grid.add(userTextField, 1, 1);
pw = new Label("Password:");
grid.add(pw, 0, 2);
pwBox = new PasswordField();
grid.add(pwBox, 1, 2);
signIn = new Button("Sign in dude !");
grid.add(signIn, 0, 3);
scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
Main:
public class JavaAppFx extends view{
public static void main(String[] args) {
model model_obj = new model();
view widok = new view();
controller mdl = new controller(args,widok,model_obj);
// Tu wzorowałem się na rozwiązaniach z paru kursów o mvc, więc teoretycznie powinno działać, ale tylko teoretycznie.
}
}
Więc wie ktoś gdzie może leżeć problem ? a może znacie jakiś inny sposób na ustawienie tej akcji ?
Z góry dzięki za pomoc.