В последнее время JavaFX представляет Alerts (Java 8u40).
Рассмотрим пример кода ниже. Как я могу отобразить полное сообщение, которое длиннее, чем несколько слов? Мои сообщения (свойство contentText
) обрезаются в конце с помощью ...
, и предупреждение не корректирует его размер должным образом, по моему мнению.
На моей машине Linux с Oracle JDK 8u40 я вижу только текст This is a long text. Lorem ipsum dolor sit amet
, который в некоторых случаях слишком короткий.
Конечно, пользователь может изменить размер окна "Предупреждение" вручную, и текст будет отображаться соответствующим образом, но это не является удобным для пользователя.
Изменить: скриншоты для 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();
}
}