0
我一直在玩弄JavaFx,并试图掌握2D和3D实现的差异。现在我一直在将2D元素应用到3D环境中。形状似乎可以在任何设置的地方渲染,无论是在根节点的边界之内还是之外。但是任何类型的文本都不喜欢在根节点的边界之外渲染。 (我曾尝试使用标签和文本字段)。有没有办法让文字在根节点之外渲染?JavaFx文本渲染超出根节点的边界
下面的示例将在根节点的边界上设置一个红色正方形和一个包含文本“test label”的标签。正如你将看到的边界不影响红色方块,但这样做的文字。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class TreeRoot extends Application {
@Override
public void start(Stage stage) throws Exception {
Rectangle square = new Rectangle();
square.setWidth(50);
square.setHeight(50);
square.setLayoutX(20);
square.setLayoutY(20);
square.setStyle("-fx-fill: red;");
Group sceneRoot = new Group();
Scene scene = new Scene(sceneRoot);
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setNearClip(0.1);
camera.setFarClip(10000);
camera.setTranslateZ(-1000);
scene.setCamera(camera);
stage.setScene(scene);
stage.show();
Label label = new Label("Test label");
label
.setStyle("-fx-font: 100px Tahoma;-fx-fill: linear-gradient(from 0% 0% to 100% 200%, repeat, aqua 0%, red 50%);-fx-stroke: white; -fx-stroke-width: 1;");
label.setTranslateX(-100);
square.setTranslateX(-50);
sceneRoot.getChildren().add(square);
sceneRoot.getChildren().add(label);
}
public static void main(String[] args) {
launch(args);
}
}