调整表大小

时间:2014-01-12 17:09:53

标签: javafx javafx-2 javafx-8

我创建了一个表格洞察FlowPane

flowPane.widthProperty().addListener(new ChangeListener()
{
    @Override
    public void changed(ObservableValue ov, Object t, Object t1)
    {
        double value = (double) t1;
        table.setPrefSize(value, 600);
        System.out.println("Scene Width :" + value);
    }
});

我希望在调整主舞台大小时,FlowPane也可以调整表格的大小。我创建了一个大小为FlowPane的侦听器。但是当我调整主舞台的大小时,表格大小不会改变。你能帮我解决我错过的事吗?

1 个答案:

答案 0 :(得分:1)

由于您只是在更改的侦听器方法中更新表的宽度,我将假设您只希望表格水平增长/缩小。假设是这种情况,我建议您尝试在FlowPane和TableView的宽度属性之间设置单向绑定,而不是设置 ChangeListener

table.prefWidthProperty().bind(flowPane.widthProperty());

绑定可确保flowPane的 widthProperty 随时更改,表的 prefWidthProperty 也将更新。如果您希望继续使用 ChangeListener ,则可以避免按如下​​方式转换新值...

flowPane.widthProperty().addListener(new ChangeListener<Number>()
{
    @Override
    public void changed(ObservableValue ov, Number t, Number t1)
    {
        table.setPrefSize(t1.doubleValue(), 600);
        System.out.println("Scene Width :" + t1.doubleValue());
    }
});

希望这个答案有所帮助!