我試圖以業務邏輯和視圖分開的方式開發javafx項目。坦率地說,我不知道我是否意識到了。更改javafx對象屬性
我的想法是創建一個類視圖。簡化它看起來像這樣:
public class View extends Application {
private Pane screen = new Pane();
private Rectangle rect;
private Scene scene = new Scene(screen, 500, 500);
public View(){
rect = new Rectangle(10, 10, 100, 100);
rect.setFill(Color.WHITE);
rect.setStroke(Color.BLACK);
screen.getChildren().add(rect);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Rectangles");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
public void setColor() {
rect.setFill(Color.BROWN);
}
}
該類的對象可以被創建並在另一個類中的主要方法包括經營業務邏輯以這種方式使用:
View foo = new View();
foo.main(null);
不幸的是,我不能之後改變它的屬性。因此,這種說法沒有任何作用。
foo.setColor();
就像我說的,也許這是一個錯誤的方法。我不是很熟悉javafx,所以請放縱我。
你說你要分開觀點和邏輯,但你必須在這裏只有一個類。如果你擴展應用程序,這個類是你的Main.class,你的應用程序將以它開始。你不要從任何其他類中實例化它!你的邏輯部分在哪裏? – Tobi
對不起,我省略了整個邏輯部分。該類下面的語句應該在另一個類的主要方法中執行(該類包含與其無關的商業邏輯)。 – user3803086
你的邏輯類也有一個主要方法嗎? – Tobi