【问题标题】:Add a Rectangle to root in javafx在javafx中添加一个矩形到根
【发布时间】:2018-02-14 09:30:08
【问题描述】:

我尝试创建一些形状的 javafx 库..

所以,在“开始”方法中,当我创建一个新圆圈并将其添加到根时,我没有任何问题:

@Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Scene scene = new Scene(root, 800, 600, Color.LIGHTBLUE);
        primaryStage.setScene(scene);

        Circle cercle = new Circle();
        cercle.setCenterX(300);
        cercle.setCenterY(200);
        cercle.setRadius(100);
        cercle.setFill(Color.YELLOW);
        cercle.setStroke(Color.ORANGE);
        cercle.setStrokeWidth(5);

        root.getChildren().add(cercle);
        primaryStage.show();
    }

但是,当我尝试使用矩形执行此操作时,编译器不接受,并在“添加”方法下画一条红线

@Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Scene scene = new Scene(root, 800, 600, Color.LIGHTBLUE);
        primaryStage.setScene(scene);

        Rectangle rectangle = new Rectangle();
        rectangle.setX(300);
        rectangle.setY(200);
        rectangle.setWidth(300);
        rectangle.setHeight(200);
        rectangle.setFill(Color.GREEN);
        rectangle.setStroke(Color.DARKGREEN);
        rectangle.setStrokeWidth(5);
        rectangle.setArcHeight(30);
        rectangle.setArcWidth(30);

        root.getChildren().add(rectangle);
        primaryStage.show();
    }

编译器说:

List 类型中的 add(Node) 方法不适用于 参数(矩形)

我在其他程序中看到这个,它可以正常工作。

注意:我使用 eclipse luna 和 jdk 8

【问题讨论】:

标签: java javafx


【解决方案1】:

com.sun.javafx.geom.Rectangle 是一个 JDK 内部类,不会扩展 Node 类,但无论如何您都不应该使用内部类。删除此内部导入并替换为:

import javafx.scene.shape.Rectangle

【讨论】:

    【解决方案2】:

    使用

    import javafx.scene.shape.Rectangle;
    

    而不是

    import java.awt.Rectangle;
    

    【讨论】:

    • 我有这个导入:com.sun.javafx.geom.Rectangle ... import javafx.scene.shape.Rectangle 不起作用!
    • 啊好吧!它不起作用,因为这两个导入不能在一起..所以我删除了 com.sun.javafx.geom.Rectangle 并放了 javafx.scene.shape.Rectangle ...谢谢:-)
    • 这就是我写“代替”的原因。不知道你有“geom.Rectangle”,我以为你有 awt.Rectangle。无论如何,一般解释:每当您键入“矩形”时,编译器和 Eclipse 都需要知道您想要哪个。可悲的是,有多个同名的矩形类。这也产生了令人困惑的错误消息。如果它说:“不适用于参数(geom.Rectangle)”,那就很清楚了。但是由于它们具有命名空间,您可以指定您想要的名称。我假设您使用 Eclipse 工具提示导入了 Rectangle,提示了多个,您选择了第一个。
    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多