为什么我的代码片段不接受颜色作为参数?

时间:2014-04-20 08:35:43

标签: javafx graphicscontext

所以我试图创建一些在画布上绘制轴的东西。 我想通过使用setStroke方法将轴的颜色设置为红色,但它告诉我我给出了错误的类型参数。令我困惑的是,虽然使用某些代码示例代码但它根本不会给出错误。 我的代码:

package lissa;

import java.awt.Color;
import javafx.scene.Node;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;

public class kalf extends Canvas{
    private GraphicsContext gc ;
    private Color kleurAs;

    public kalf(Node achtergrond){
        super(); // hoe moet je de grootte instellen?
        gc = getGraphicsContext2D();
        kleurAs = Color.RED;
        tekenAs(gc);
    }

    public void tekenAs(GraphicsContext gc){

//这是问题

    gc.setStroke(kleurAs);          
    gc.strokeLine(d, d1, d2, d3); 
}

示例代码:

public class LissajousCanvas extends Canvas {

private final LissajousData data;
private static final int AANT_PTN = 200;
private static final int RAND = 5;
private final GraphicsContext gc;
private final int factor;
private Color kleurAs;
private ContextMenu menu;

public LissajousCanvas(LissajousData data, double width, double height) {
    super(width, height);
    this.data = data;
    gc = this.getGraphicsContext2D();
    factor = Math.min((int) getWidth(), (int) getHeight()) - 2 * RAND;
    kleurAs = Color.RED;
    tekenAssen();
    getStyleClass().add("canvas");
    maakContextMenu();
    final LissajousCanvas canvas = this;
    addEventHandler(MouseEvent.MOUSE_CLICKED,
            new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent e) {
                    if (e.getButton() == MouseButton.SECONDARY) {
                        menu.show(canvas, e.getScreenX(), e.getScreenY());
                    }
                }
            });
}

private void tekenAssen() {

//这是正确使用的地方,同时仍然使用GraphicsContext作为调用者+具有

//参数的颜色

     gc.setStroke(kleurAs);

     gc.strokeLine(0, factor / 2 + RAND, factor + 2 * RAND, factor / 2 + RAND);
     gc.strokeLine(factor / 2 + RAND, 0, factor / 2 + RAND, factor + 2 * RAND);

}
}

任何想法为什么第一段代码不正确而第二段不是?

1 个答案:

答案 0 :(得分:1)

您使用了错误的导入。 JavaFX拥有自己的Color类。

使用

import javafx.scene.paint.Color;

而不是

import java.awt.Color;