java fx 滚动条_JavaFX 滚动条

JavaFX教程 - JavaFX 滚动条

ScrollBar类经常带有一个可滚动的窗格。import javafx.application.Application;

import javafx.geometry.Orientation;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.ScrollBar;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage stage) {

Group root = new Group();

Scene scene = new Scene(root, 500, 200);

stage.setScene(scene);

ScrollBar s1 = new ScrollBar();

root.getChildren().add(s1);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

滚动条有四个区域:thumb

右按钮或向下按钮

左按钮或向上按钮

track

上面的代码生成以下结果。

ca3fa021aa64c7fe3c6848cae0dc6df4.png

创建滚动条

以下代码使用其默认构造函数创建滚动条。ScrollBar sc = new ScrollBar();

setMin和setMax方法定义滚动条表示的最小值和最大值。

setValue方法设置滚动的当前值,也设置拇指的位置。sc.setMin(0);

sc.setMax(100);

sc.setValue(50);

当用户移动缩略图时,滚动条的值会更改。

默认情况下,滚动条水平定向。我们可以使用setOrientation方法设置垂直方向。

我们可以单击左右按钮的水平滚动条或向上和向下按钮垂直滚动条滚动一个单位增量。UNIT_INCREMENT属性设置此值。

单击轨道可使滚动条移动块增量。BLOCK_INCREMENT属性定义此值。import javafx.application.Application;

import javafx.geometry.Orientation;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.ScrollBar;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage stage) {

Group root = new Group();

Scene scene = new Scene(root, 500, 200);

stage.setScene(scene);

ScrollBar s1 = new ScrollBar();

s1.setMax(500);

s1.setMin(0);

s1.setValue(100);

s1.setUnitIncrement(30);

s1.setBlockIncrement(35);

s1.setOrientation(Orientation.VERTICAL);

root.getChildren().add(s1);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

52e616abf9aeacbe57836560ecfb23c8.png

滚动事件

以下代码为滚动事件从滚动条添加事件处理程序。import javafx.application.Application;

import javafx.beans.value.ObservableValue;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.ScrollBar;

import javafx.stage.Stage;

public class Main extends Application {

@Override

public void start(Stage stage) {

Group root = new Group();

Scene scene = new Scene(root, 500, 200);

stage.setScene(scene);

ScrollBar s1 = new ScrollBar();

s1.valueProperty().addListener((ObservableValue extends Number> ov,

Number old_val, Number new_val) -> {

System.out.println(-new_val.doubleValue());

});

root.getChildren().add(s1);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

c82ec9b85ce1b96bb5e1efc22bde21e4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值