JavaFX控件对话框和SegmentedButtons

时间:2014-09-08 07:42:39

标签: dialog javafx controlsfx

我正在为ControlsFX使用最新版本的JavaFX,我遇到了一个非常奇怪的错误..我希望有人找到了“修复”。

我没有为此创建一个简单的测试用例,但是如果我创建custom Dialog,在其上添加GridPane,请向SegmentedButton添加GridPane整个Dialog失去了它的边界!

仅在我第一次打开对话框时发生这种情况。如果我重新创建Dialog,一切正常*

由于这样的故障,我真的很讨厌转储SegmentedButton ..还有其他人遇到过这个问题吗?

编辑,这是一个应该演示错误的简单测试。在这个测试中,现在效果更糟。它似乎是某种削波错误。

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();
    }
}

1 个答案:

答案 0 :(得分:1)

经过一些实验,我只是在显示对话框之前调用dialog.getWindow().sizeToScene()来解决问题。