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);
}
}