我不想使用 AWT。 我正在使用 FontMetrics.computeStringWidth() 但在 JDK 10 中消失了,破坏了我的应用程序。有没有不需要引入新框架的替代方案(我正在使用javafx)
最佳答案
您可以使用Text
并从boundsInLocal
属性获取大小。 (Text
节点不需要附加到场景即可工作。)
以下代码使矩形
的宽度与文本
的大小保持相同。
@Override
public void start(Stage primaryStage) throws Exception {
Text text = new Text();
TextField textField = new TextField();
Rectangle rect = new Rectangle(0, 20);
textField.textProperty().addListener((o, oldValue, newValue) -> {
text.setText(newValue);
rect.setWidth(text.getBoundsInLocal().getWidth());
});
Scene scene = new Scene(new VBox(textField, text, rect), 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
关于java - JDK 10 支持的计算字符串宽度(像素)的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50696522/