在javafx中向根添加一个Rectangle

时间:2018-02-14 09:30:08

标签: java javafx

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

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

@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();
    }

但是,当我尝试用矩形做这个时,编译器不接受,并在'add'方法下画一条红线

@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)不适用于   arguments(Rectangle)

我在其他程序中看到这一点,它正常工作。

注意:我使用eclipse luna和jdk 8

2 个答案:

答案 0 :(得分:1)

使用

import javafx.scene.shape.Rectangle;

而不是

import java.awt.Rectangle;

答案 1 :(得分:1)

Node是一个JDK内部类,并不扩展import javafx.scene.shape.Rectangle类,但你不应该使用内部类。删除此内部导入,而不是替换为:

package com.array.orderstatistics; import java.util.Arrays; import java.util.Collections; public class SecondLargestElement { /** * Total Time Complexity will be n log n + O(1) * @param str */ public static void main(String str[]) { Integer[] integerArr = new Integer[] { 5, 1, 2, 6, 4 }; // Step1 : Time Complexity will be n log(n) Arrays.sort(integerArr, Collections.reverseOrder()); // Step2 : Array.get Second largestElement int secondLargestElement = integerArr[1]; System.out.println(secondLargestElement); } }