【发布时间】:2015-05-10 08:05:07
【问题描述】:
最近,JavaFX 引入了警报 (Java 8u40)。
考虑下面的代码示例。如何显示比几个单词更长的完整消息?我的消息(contentText 属性)最后被 ... 截断,我认为警报没有正确调整其大小。
在我的装有 Oracle JDK 8u40 的 Linux 机器上,我只能看到文本 This is a long text. Lorem ipsum dolor sit amet,在某些情况下它太短了。
当然,用户可以手动调整警报窗口的大小并相应地显示文本,但这一点都不友好。
编辑:Windows 7 和 Linux 的屏幕截图(来自 Oracle 的 JDK):
import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.stage.Stage;
public class TestAlert extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Alert a = new Alert(AlertType.INFORMATION);
a.setTitle("My Title");
a.setHeaderText("My Header Text");
a.setResizable(true);
String version = System.getProperty("java.version");
String content = String.format("Java: %s.\nThis is a long text. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", version);
a.setContentText(content);
a.showAndWait();
}
}
【问题讨论】:
-
这个问题似乎解决了您所看到的问题:bugs.openjdk.java.net/browse/JDK-8095777。据说它已在 8u40 中修复,但是,我仍然在使用 8u45 的 CentOS 上看到问题。
-
这个bug在java8u66 oracle linux(不是openjdk)中仍然存在。