Niedawno JavaFX wprowadził alarmy (Java 8u40).Alerty JavaFX i ich rozmiar
Weź pod uwagę przykład kodu poniżej. Jak wyświetlić pełną wiadomość dłuższą niż kilka słów? Moje wiadomości (contentText
) są przycinane na końcu przy pomocy ...
, a Alert nie dostosowuje poprawnie swojego rozmiaru w mojej opinii.
Na moim komputerze z systemem Linux z Oracle JDK 8u40 widzę tylko tekst This is a long text. Lorem ipsum dolor sit amet
, który w niektórych przypadkach jest zbyt krótki.
Oczywiście użytkownik może ręcznie zmienić rozmiar okna Alert, a tekst zostanie wyświetlony odpowiednio, ale nie jest to wcale przyjazne dla użytkownika.
Edit: Zrzuty ekranu dla systemu Windows 7 i Linux (JDK z 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();
}
}
Ten problem wydaje się odnosić do tego, co widzisz: https://bugs.openjdk.java.net/browse/JDK-8095777. Zostało to rzekomo naprawione w 8u40, jednak nadal widzę problem na CentOS przy 8u45. –
Błąd jest nadal obecny w Linuksie java8u66 oracle (nie openjdk). –
Zobacz także: https://stackoverflow.com/q/33318661/179864 – aditsu