我正在构建一个 Java FX 2 应用程序,它必须在透明的 png 图像下显示动画,方法是在包含图像的图像视图下方的窗格的“图形”中绘制矩形。
经过数小时的搜索,我只找到了创建矩形然后将其添加到场景中的示例。但是,我需要循环绘制(每隔几毫秒),我不知道如何直接绘制到窗格。
我正在使用 FXML 来构建 GUI。
可以像 Swing 一样在 Java FX 中绘制任何组件的图形吗?
提前致谢。
图像视图具有不透明度属性......它会使图像像透明......
试试这个..我希望它有效。
Image img = new Image(getClass().getResourceAsStream("example.png"));
ImageView im = new ImageView(img);
im.setOpacity(0.25); /*its similar like transparency */
在您的窗格中,您可以添加一个画布,然后使用
GraphicsContext gc = canvas.getGraphicsContext2D();
从那里,您可以绘制到图形上下文。
Pane pane = new Pane();
//probably would want StackPane to layer imageview ontop of canvas
//otherwise, do your own translations
Canvas canvas = new Canvas();
ImageView image = ....;
pane.getChildren().addAll(canvas,image);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.fillRect(2,2,120,120);
//etc....