我想在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);
答案 0 :(得分:0)
您发布的代码似乎有用 - 这是我得到的结果:
这是我使用的代码:
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);
}
}