В последнее время JavaFX представляет Alerts (Java 8u40).Предупреждения JavaFX и их размер
Рассмотрите приведенный ниже пример кода. Как я могу отобразить полное сообщение, которое длиннее, чем несколько слов? Мои сообщения (contentText
) вырезаются в конце ...
, и Alert не корректирует его размер должным образом, на мой взгляд.
На моей машине Linux с Oracle JDK 8u40 я вижу только текст This is a long text. Lorem ipsum dolor sit amet
, который в некоторых случаях является слишком коротким.
Конечно, пользователь может изменить размер окна предупреждения вручную, и текст будет отображаться соответствующим образом, но это не является удобным для пользователя.
Edit: Скриншоты для Windows 7 и Linux (JDK от Oracle):
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();
}
}
Эта проблема, кажется, касается того, что вы видите: https://bugs.openjdk.java.net/browse/JDK-8095777. Возможно, это было исправлено в 8u40, однако я все еще вижу проблему с CentOS с 8u45. –
Ошибка все еще присутствует в java8u66 oracle linux (не openjdk). –
См. Также: https://stackoverflow.com/q/33318661/179864 – aditsu