JavaFX - Создание объекта типа Button - PullRequest
0 голосов
/ 29 октября 2019

Итак, я пытаюсь изучить JavaFX, разрабатывая простой калькулятор.

Однако я хочу использовать объектно-ориентированный подход к этому. Частью моего дизайна является создание каждой кнопки как объекта, который наследует класс Button в JavaFX, и каждый объект имеет свои собственные свойства и поведение.

Мой класс Main, который в настоящее время отвечает за загрузку всего пользовательского интерфейсаelements:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;



public class Main extends Application implements EventHandler<ActionEvent> {
    private Button button;
    private StackPane layout;
    private PlusButton plus;

@Override
public void start(Stage mainStage) throws Exception {
    mainStage.setTitle("Dan's newbie calculator");
    plus = new PlusButton();
    //plus.setOnAction(this);

    StackPane layout = new StackPane();
    Scene scene = new Scene(layout, 500, 500);
    mainStage.setScene(scene);

    layout.getChildren().add(plus);
    mainStage.show();

}

public void handle(ActionEvent event) {

    }


public static void main(String[] args) {
    launch(args);
    }
}

Моя первая кнопка (PlusButton), которая должна наследовать класс Button от JavaFX:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;;

public class PlusButton extends Application implements EventHandler<ActionEvent> {
    Button plusButton;

    @Override
    public void start(Stage stage) throws Exception {
        plusButton = new Button();
        plusButton.setText("+");
    }

    @Override
    public void handle(ActionEvent actionEvent) {
        if (actionEvent.getSource() == plusButton) {
            System.out.println("+ Pressed");
        }
    }
}

Теперь, очевидно, в этом текущем состоянии я не могу использовать методывнутри кнопки, поскольку я не наследую это должным образом. Я прошу правильное решение этой проблемы, с которой я сталкиваюсь.

Я знаю, что, вероятно, есть тысячи учебников о том, как правильно подходить к объектно-ориентированному подходу, но я действительно учусь, пытаясь реализовать примеры. я. * * 1013

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...