我尝试创建一些形状的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
答案 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);
}
}