java - 如何在折线内添加文本?
解决方案
javafx.scene.shape.Shape 不是父级。它不能在其中包含子项(文本)。因此,如果您的问题是关于将形状和文本一起处理以进行一些转换(翻译、旋转等),我认为最简单的方法是将两者包装在窗格中(最好是 StackPane)并在窗格上进行所有转换而不是单独的形状和文本。
下面是我的意思的快速示例演示:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Polyline;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class PolylineExample extends Application {
@Override
public void start(Stage stage) {
Polyline polyline = new Polyline();
polyline.getPoints().addAll(new Double[]{
200.0, 50.0,
400.0, 50.0,
450.0, 150.0,
400.0, 250.0,
200.0, 250.0,
150.0, 150.0,
});
Text text = new Text("Some Text");
StackPane container = new StackPane(polyline, text);
// DOING ALL TRANSFORMATIONS ON CONTAINER
container.setTranslateX(20);
container.setTranslateY(50);
container.setRotate(30);
StackPane root = new StackPane(new Group(container));
Scene scene = new Scene(root, 600, 300);
stage.setTitle("Drawing a Polyline");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
推荐阅读
- python - 在anaconda环境中安装本地包
- database - 显式连接与隐式连接?
- wordpress - Wordpress如何添加主题安装
- postgresql - 删除 postgresql 循环中的括号
- visualization - 将 Nef 多面体保存为 Polyhedron_3 或 Surface_mesh 会给出不同的结果
- css - Angular 6 全局 css 的替代方式
- java - Java Hashmap 内部工作原理 123
- google-bigquery - 合并两列并创建新行
- druid - DRUID:获取给定日期范围的天数以获得平均值
- angular - browser.baseUrl 在量角器测试时意外更改