2014-09-08 2 views
0

J'utilise la dernière version de ControlsFX pour JavaFX, et je rencontre un bug très étrange .. et j'espère que quelqu'un a trouvé une "solution" pour cela.JavaFX Controls Dialog et SegmentedButtons

Je n'ai pas créé d'un simple test pour cela, mais si je crée un custom Dialog, ajoutez un GridPane sur, ajoutez un SegmentedButton au GridPane, l'ensemble Dialog perd son frontières!

Cela se produit uniquement la première fois que j'ouvre la boîte de dialogue. Si je recréer le dialogue tout fonctionne très bien *

Je détesterais vraiment jeter le SegmentedButton en raison d'un problème comme celui-ci .. quelqu'un d'autre a-t-il rencontré ce problème?

EDIT, voici un test simple qui devrait démontrer le bug. L'effet est encore pire maintenant, dans ce test. Il semble être une sorte de bug de coupure.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.control.ToggleButton; 
import javafx.stage.Stage; 
import org.controlsfx.control.SegmentedButton; 
import org.controlsfx.dialog.Dialog; 

public class DialogTest extends Application { 

    public static void main(String[] args) { 
     launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     Group root = new Group(); 
     Scene scene = new Scene(root); 
     primaryStage.setScene(scene); 

     primaryStage.show(); 

     Dialog dlg = new Dialog(primaryStage, "Test Dialog"); 
     dlg.setMasthead("Dialog test"); 
     dlg.setIconifiable(false); 
     dlg.setResizable(false); 

     SegmentedButton seg = new SegmentedButton(); 
     seg.getButtons().add(new ToggleButton("Button 1")); 
     seg.getButtons().add(new ToggleButton("Button 2")); 
     seg.getButtons().add(new ToggleButton("Button 3")); 
     seg.getButtons().add(new ToggleButton("Button 4")); 
     seg.getButtons().add(new ToggleButton("Button 5")); 

     dlg.setContent(seg); 

     dlg.show(); 
    } 
} 
+0

Pouvez-vous créer un simple [test/MCVE] (http://stackoverflow.com/help/mcve) pour cela et l'afficher ici? – ItachiUchiha

+0

Les dialogues de ControlsFX font maintenant officiellement partie de JavaFX. Alors pouvez-vous télécharger la dernière version de JavafX (8u40 qui supporte les dialogues) ici: https://jdk8.java.net/download.html et vérifier que votre bogue existe toujours? – Maxoudela

+0

J'ai ajouté un test simple, et je vais essayer le 8u40 plus tard. – user2499946

Répondre

1

Après quelques essais, j'ai résolu le problème simplement en appelant dialog.getWindow().sizeToScene() avant d'afficher la boîte de dialogue.