JavaFX 2 Line on Pane

时间:2013-07-16 09:42:59

标签: java javafx javafx-2

我想在Pane中添加一行但是在运行应用程序时不会显示该行。 在我的Pane中添加带有ImageView的Label正在工作,我可以看到我在ImageView上设置的图像。我尝试用几种方式显示一条线,使用Canvas,绘制一条线并将Canvas添加到窗格中,同时构建一条线并将其直接添加到窗格中,没有一条正在工作。

Pane pane = new Pane();
//Image image = new Image("image.png");
//ImageView imageView = new ImageView();
//imageView.setImage(image);
//Label label = new Label();
//label.setGraphic(imageView);
//Canvas canvas = new Canvas(105, 105);
//canvas.relocate(296, 128);
//GraphicsContext gc = canvas.getGraphicsContext2D();
//gc.setStroke(Color.BLUE);
//gc.setLineWidth(5);
//gc.strokeLine(0, 0, canvas.getWidth(), canvas.getHeight());
Line redLine = LineBuilder.create()
                        .startX(296)
                        .startY(128)
                        .endX(401)
                        .endY(233)
                        .fill(Color.RED)
                        .strokeWidth(10.0f)
                        .build();
pane.getChildren().add(redLine);
//pane.getChildren().add(canvas);
//pane.getChildren().addAll(label, redLine);

1 个答案:

答案 0 :(得分:0)

您发布的代码似乎有用 - 这是我得到的结果:

Screenshot of Program with Line

这是我使用的代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.scene.shape.LineBuilder;
import javafx.stage.Stage;


public class FXLine extends Application {

    @Override
    public void start(Stage stage) throws Exception {

        Pane pane = new Pane();
        Line redLine = LineBuilder.create()
            .startX(296)
            .startY(128)
            .endX(401)
            .endY(233)
            .fill(Color.RED)
            .strokeWidth(10.0f)
            .build();
        pane.getChildren().add(redLine);
        stage.setScene(new Scene(pane, 425, 275));
        stage.show();
    }

    public static void main(String[] args){
        Application.launch(args);
    }
}