本节我们来介绍滚动条。
ScrollBar类可以让我们在应用中创建滚动条。下图展示了滚动条的三个部分,拇指健、左右按钮和轨迹。
创建一个滚动条
ScrollBar sc = new ScrollBar();
sc.setMin(0);
sc.setMax(100);
sc.setValue(50);
我们可以使用setMin和setMax方法来设置滚动条的最小值和最大值,当我们移动拇指按钮的时候,滚动条的值就会变化。我们也可以通过setValue方法来设置当前滚动条的值。默认情况下滚动条是水平的,然而,我们通过setOrientation方法设置成垂直的。
我们可以单击左右按钮使得滚动条以单位长度进行滚动。我们可以通过setUnitIncrement方法来设置单位长度。
还可以通过点击轨迹使得滚动条按照块长度进行滚动。通过setBlockIncrement方法来设置块长度。
使用滚动条
package com.chu.button;
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Orientation;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ScrollBar;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
/**
*
* 这次的人民币的汇率走低是因为美元周期的影响,具体不明白为什么会影响到,但是我们知道是因为外在的因素影响了人民币的贬值,
* 而不是我们中国的市场通货膨胀造成的贬值。人民币在国际上一贬值,进口货物就会花更多的人民币,就会造成资本外流,
* 国内的人民币流通就少了,市场购买力就下降,这就会造成国内通货紧缩(东西多,钱少),人民币就会升值(这就是市场调节能力)。
* 然后就是物价下降,楼市崩盘。中国为了抑制这种情况出现,央行紧急降准。这就让中国市场上多出很多流动资金,
* 把人民的购买力强行拉上来,人民币多了,物价就不会下降,反而可能物价会上涨,相对应的人民币就要贬值,所以房子可能就要更贵了。
*
* 总之就是。国际上人民币贬值,资本就会外流,在市场的调节下国内人民币就会升值来抑制国际上的人民币贬值。国内人民币一升值,物价就
* 下降,楼市就要完蛋。然后央行放出好多钱,不让人民币升值。
*
* @author chuer
* @Description:
* @date 2015年2月5日 上午10:51:23
* @version V1.0
*/
public class ScrollBarSample extends Application {
final ScrollBar sc = new ScrollBar();
final Image[] images = new Image[5];
final ImageView[] pics = new ImageView[5];
final VBox vb = new VBox();
DropShadow shadow = new DropShadow();
@Override
public void start(Stage stage) {
Group root = new Group();
Scene scene = new Scene(root, 500, 180);
scene.setFill(Color.BLACK);
stage.setScene(scene);
stage.setTitle("Scrollbar");
root.getChildren().addAll(vb, sc);
shadow.setColor(Color.GREY);
shadow.setOffsetX(2);
shadow.setOffsetY(2);
vb.setLayoutX(5);
vb.setSpacing(10);
sc.setLayoutX(scene.getWidth() - sc.getWidth());
sc.setMin(0);
sc.setOrientation(Orientation.VERTICAL);
sc.setPrefHeight(180);
sc.setMax(360);
sc.setUnitIncrement(10.0);
sc.setBlockIncrement(5.0);
for (int i = 0; i < 5; i++) {
final Image image = images[i] = new Image(getClass()
.getResourceAsStream("fw" + (i + 1) + ".jpg"));
final ImageView pic = pics[i] = new ImageView(images[i]);
pic.setEffect(shadow);
vb.getChildren().add(pics[i]);
}
sc.valueProperty().addListener((ov, old_val, new_val) -> {
vb.setLayoutY(-new_val.doubleValue());
});
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
运行如下图: