我一直在尝试使VBox可滚动,但似乎没有工作。有没有人可以帮助和建议我,我可能做错了什么?提前感谢大家。
这就是我所拥有的,但我似乎就是不能使它工作:
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
public class Scroller {
final ScrollBar sc = new ScrollBar();
DropShadow shadow = new DropShadow();
public Group scrollableGroup(VBox Container) {
Group root = new Group();
root.getChildren().addAll(Container, sc);
shadow.setColor(Color.GREY);
shadow.setOffsetX(2);
shadow.setOffsetY(2);
sc.setLayoutX(500 + sc.getWidth() + 10);
sc.setMin(0);
sc.setOrientation(Orientation.VERTICAL);
sc.setPrefHeight(500);
sc.setMax(500 * 2);
sc.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> ov,
Number old_val, Number new_val) {
Container.setLayoutY(-new_val.doubleValue());
}
});
return root;
}
}
AlmasB和James_D是对的——最简单的方法就是把VBox放到ScrollPane中。如果你这样做只是为了好玩,Oracle的ScrollBar教程会教你如何使VBox可滚动。
http://docs.oracle.com/javafx/2/ui_controls/scrollbar.htm