Javafx 调整表格大小

Javafx 调整表格大小,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,我创建了一个表insightFlowPane flowPane.widthProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue ov, Object t, Object t1) { double value = (double) t1; table.setPrefSize(value, 600);

我创建了一个表insight
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
大小。但是当我调整主阶段的大小时,表的大小没有改变。你能告诉我我遗漏了什么吗?

因为你只是用你的监听器更改的方法来更新表格的宽度,所以我假设你只希望表格水平增长/收缩。假设是这样,我建议您不要设置ChangeListener,而是尝试在FlowPane和TableView的宽度属性之间设置单向绑定

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());
    }
});
flowPane.widthProperty().addListener(新的ChangeListener())
{
@凌驾
公共无效已更改(可观察值ov,编号t,编号t1)
{
table.setPrefSize(t1.doubleValue(),600);
System.out.println(“场景宽度:+t1.doubleValue());
}
});

希望这个答案有帮助

为什么要使用Flowpane只放置一个表?