JavaFX Alertes et leur taille
Récemment, JavaFX introduit des Alertes (Java 8u40).
Considérer l'exemple de code ci-dessous. Comment puis-je afficher l'intégralité d'un message qui est plus que juste quelques mots? Mes messages (contentText
propriété) coupés à la fin avec ...
et l'Alerte ne pas ajuster sa taille correctement, à mon avis.
Sur ma machine Linux avec Oracle JDK 8u40, je ne vois que le texte This is a long text. Lorem ipsum dolor sit amet
, ce qui est trop court, dans certains cas.
Bien sûr, l'utilisateur peut redimensionner la fenêtre d'Alerte manuellement et le texte sera affiché en conséquence, mais qui n'est pas convivial du tout.
Edit: Captures d'écran pour Windows 7 et Linux (JDK de 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();
}
}
- Ce problème semble répondre à ce que vous voyez: bugs.openjdk.java.net/browse/JDK-8095777. Il était censé être fixe dans 8u40, cependant, je vois toujours le problème sur CentOS avec 8u45.
- Le bug est toujours présent dans java8u66 oracle linux(pas openjdk).
- Voir aussi: stackoverflow.com/q/33318661/179864
Vous devez vous connecter pour publier un commentaire.
J'ai fait la solution de contournement suivante:
De sorte que la fenêtre redimensionner automatiquement en fonction du contenu.
setMinWidth
, il n'a pas un effet.Ici est la meilleure solution de contournement sans numéros de magie, redimensionnement, etc.:
Cette solution fonctionne sous Windows, Linux et Mac.
J'ai fait la solution de contournement suivante il y a quelque temps:
Comme vous pouvez le voir je viens de mettre en redimensionnable drapeau et de définir la taille préférée.
Mais c'est étrange car ce bug doit être fixe dans 8u40. Êtes-vous à l'aide de la dernière version de 8u40?
Mise à JOUR:
Pas fixe dans 8u40. Doit être fixe plus tard.
java.version
de la propriété.Une autre solution est de sous-classement de l'Alerte et de l'application de style désiré, par exemple:
De cette façon, vous n'avez pas à répéter des actions pour chaque Alerte que vous créez.