每种都以不同的方法实现JavaFX形状

时间:2018-09-17 03:33:55

标签: java javafx

我有这个有效的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 :(得分:0)

像这样吗?

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

在不知道您正在使用什么的情况下,我只想补充一点,我通常不知道在这里使用没有任何参数的方法的充分理由,因此建议您不要这样做。

答案 1 :(得分:0)

这是上面答案的扩展。 经过研究,我发现了如何将形状添加到根框架中。在public void start(Stage primaryStage)方法内部,创建Shape类的对象,并使用该对象调用这些形状的方法。将对象分配给变量,然后在我的情况下(根)将其添加到框架。

  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;
  }