Я пытаюсь разработать проект 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);
}
}
Объекты этого класса могут создаваться и использоваться таким образом, в основном методе другого класса, включая BUSSINESS логику:
View foo = new View();
foo.main(null);
К сожалению, я не могу затем измените его атрибуты. Поэтому это утверждение не имеет никакого эффекта.
foo.setColor();
Как я уже сказал, может быть, это неправильный подход. Я не очень хорошо знаком с джавафсом, поэтому, пожалуйста, побалуйте меня.
Вы говорите, что хотите отделить представление и логику, но у вас есть только один класс здесь. Если вы продляете приложение, этот класс будет вашим Main.class, и ваше приложение начнет с него. Вы не создаете экземпляр из любого другого класса! Где ваша логическая часть? – Tobi
Извините, я пропустил всю логическую часть. Заявления под классом должны выполняться в основном методе другого класса (этот класс включает в себя логику бизнеса, которая не имеет к ней отношения). – user3803086
Есть ли у вашего логического класса также основной метод? – Tobi