总体而言,关于JavaFX和编程,尤其是面向对象,我非常环保。我最初使用Main()
方法工作,并且能够使用多个Shapes
并使用并集和减法来创建更复杂的形状。现在,我希望能够创建一个新的类/对象,可以调用该类/对象来重用该代码。
我认为应该遵循创建“ complexshape”类和扩展Shape的思路。然后像在main()
中一样建立复杂的形状。然后回到main并通过构造函数实例化对象,然后通过layout.getChildren().add(objectname);
将对象放入我的布局中
但是我的IDE告诉我,“ complexshape”类必须是抽象的,对此我有部分线索。但是我不确定该怎么做。
关于我的逻辑为什么错误的任何想法?
Main.java
package sample; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Shape; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { StackPane root = new StackPane(); Scene scene = new Scene(root, 100,100,Color.WHITE); complexShape A = new complexShape(); root.getChildren().add(A); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
complexShape.java
package sample;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Shape;
public class complexShape extends Shape {
public Shape complesShape() {
Circle A = new Circle(50,50,10);
Rectangle B = new Rectangle(50,50,100,10);
Shape C = Shape.union(A, B);
C.setFill(Color.RED);
return C;
}
}
总体而言,关于JavaFX和编程,尤其是面向对象,我非常环保。我最初使用Main()方法,并且能够使用...
处理此问题的最佳方法是将布局用作所有对象(即矩形,圆形等)的容器,并创建可以在事后更改的字段或属性。因此,创建一个扩展某种布局类型(HBox,VBox,GridPane等)的类,并将所有形状对象放置在其中。如果您需要从另一个形状中减去一个形状,并且需要动态变化,请创建一种将在调用时重新构建形状的方法。