JavaFX错误:不兼容的类型:ContentDisplay无法转换为VPos

时间:2016-07-25 10:56:51

标签: javafx

我使用def index @rooms = Room.active.available(params[:discipline]) search_param = params[:search].present? if search_param.present? @rooms = @rooms.near(session[:loc_search], 5, order: 'distance') end @rooms = @rooms.ransack(params[:q]).result(distinct: true) end 作为GridPane的布局,但是当我在代码中添加Main时...显示此类错误..

Button

我的控制器和 主要课程

Incompatible types: ContentDisplay cannot be converted to VPos

1 个答案:

答案 0 :(得分:0)

您已为ContentDisplay.CENTER添加了静态导入。因此,它在这一行中使用:

grid.setConstraints(new Button("Check"),3,4,1,2,LEFT,CENTER,Priority.SOMETIMES,Priority.SOMETIMES);

但是,此方法需要VPos,这不能从ContentDisplay分配,这就是为什么它不能编译。

您可以通过更改导入的类来简单地修复此导入,但我不建议使用静态导入,因为它使代码更难阅读(您必须检查导入以了解成员的来源)。

我建议导入HPosVPos,然后使用此代码。

此外setColumnConstraintsstatic方法,不应使用变量引用。 (这没有错,但这是不好的做法。)作为static方法,这不会将Button添加为grid的孩子。除了设置约束之外,还需要执行此操作。

Button button = new Button("Check");
GridPane.setConstraints(button,
                        3, 4,
                        1, 2,
                        HPos.LEFT, VPos.CENTER,
                        Priority.SOMETIMES, Priority.SOMETIMES);

grid.getChildren().add(button);