我创建了一个表格洞察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
的侦听器。但是当我调整主舞台的大小时,表格大小不会改变。你能帮我解决我错过的事吗?
答案 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());
}
});
希望这个答案有所帮助!