Реализация форм JavaFX в разных методах каждый - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть этот рабочий код JavaFX, который используется для рисования четырех различных фигур в корневом фрейме. Мне бы хотелось, чтобы у каждой фигуры был свой метод, который ее реализует, например, если это круг, что-то вроде public void circle(){//statements}, но я не знаю, как это сделать. Пожалуйста, помогите мне. Спасибо.

package shapes;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

/**
 *
 * @author mach
 */
public class Shapes extends Application {

    @Override
    public void start(Stage primaryStage) {


        Group root = new Group();
        //Draw a line
        Line line= new Line();
        line.setStartX(150);
        line.setStartY(20);
        line.setEndX(270);
        line.setEndY(20);
        line.setStroke(Color.RED);

        //Draw a circle radius (x,y,radius)
        Circle circle = new Circle(70, 110, 30);
        circle.setStroke(Color.RED);
        circle.setFill(Color.AQUA);

        //draw a Rectangle(x, y, width, height);
        Rectangle rect = new Rectangle(200, 90, 70,50);
        rect.setStroke(Color.WHITE);
        rect.setFill(Color.BLUE);

        //Draw a triange
        Polygon triangle = new Polygon();
         triangle.getPoints().addAll(50.0, 0.0,  50.0, 50.0,100.0, 50.0);


        Scene scene = new Scene(root, 300, 300);
        //add all the created objects to canvas
        root.getChildren().addAll(line, circle, rect, triangle);

        primaryStage.setTitle("PART 1!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

}

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Это расширение ответа выше. После некоторых исследований я узнал, как добавить фигуры к корневой рамке. Внутри метода public void start(Stage primaryStage) создайте объект класса Shape и используйте этот объект для вызова методов для фигур. Присвойте объекты переменной и добавьте их в кадр в моем случае (root).

  public void start(Stage primaryStage) {
        Shapes frame = new Shapes();

        Circle circle  = frame.getCircle();
        Rectangle rectangle= frame.getRectangle();


     root.getChildren().addAll(circle, rectangle);  
   }
    public Rectangle getRectangle(){
        Rectangle rect = new Rectangle(200, 90, 70,50);
        rect.setStroke(Color.WHITE);
        rect.setFill(Color.BLUE);
     return rect;
  }
0 голосов
/ 17 сентября 2018

Как то так?

 public Circle getCircle(){
        Circle circle = new Circle(70, 110, 30);
        circle.setStroke(Color.RED);
        circle.setFill(Color.AQUA);
        return circle;
}

Не зная, над чем вы работаете, я только хочу добавить, что я, как правило, не знаю веских причин для использования метода без каких-либо параметров здесь, и советую против этого.

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