JavaFX UI控件教程(十)之Scroll Bar
翻译自 Scroll Bar
本章介绍如何使用滚动条控件创建可滚动窗格。
本ScrollBar
类可以在应用程序中创建滚动窗格和意见。图9-1显示了滚动条的三个区域:拇指,右侧和左侧按钮(或向下和向上按钮)以及轨道。
创建滚动条
花点时间查看例9-1中的代码片段。
ScrollBar sc = new ScrollBar();
sc.setMin(0);
sc.setMax(100);
sc.setValue(50);
在您的应用程序中,您可以使用多个滚动条之一滚动超出可用空间边界的图形内容。
在应用程序中使用滚动条
检查滚动条的运行情况。示例9-2中显示的应用程序实现了可滚动场景以查看图像。此应用程序的任务是使用户能够查看垂直框的内容,该内容比场景的高度更长。
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
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;public class Main 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();@Overridepublic void start(Stage stage) {Group root = new Group();Scene scene = new Scene(root, 180, 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);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(new ChangeListener<Number>() {public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {vb.setLayoutY(-new_val.doubleValue());}});stage.show();}public static void main(String[] args) {launch(args);}
}
Y
当VALUE
滚动条的属性发生变化时,垂直框的坐标会发生变化,因此每次移动滑块或单击按钮或轨道时,垂直框都会移动,如例9-3所示。
sc.valueProperty().addListener(new ChangeListener<Number>() {public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {vb.setLayoutY(-new_val.doubleValue());}
});
该应用程序显示了ScrollBar
该类的一个典型用法。您还可以自定义此类以在场景中创建滚动区域。对于每个UI控件和每个节点,可以设置滚动条的样式以从默认实现更改其外观。
ScrollBar
JavaFX CSS规范
JavaFX UI控件教程(十)之Scroll Bar相关推荐
- JavaFX UI控件教程(二)之JavaFX UI控件
翻译自 JavaFX UI控件 本章概述了通过API提供的JavaFX UI控件. JavaFX UI控件是使用场景图中的节点构建的.因此,控件可以使用JavaFX平台的视觉丰富功能.由于JavaF ...
- JavaFX UI控件教程(一)之简述
翻译自 JavaFX UI控件概述 关于本教程 本教程介绍JavaFX API中提供的内置JavaFX UI控件. 该文件包含以下章节: JavaFX UI控件 标签 按钮 单选按钮 切换按钮 复选 ...
- JavaFX UI控件教程(八)之Choice Box
翻译自 Choice Box 本章介绍了选项框,这些UI控件提供了在几个选项之间快速选择的支持. 使用ChoiceBox该类将选择框添加到JavaFX应用程序.其简单的实现如图7-1所示. 图7- ...
- JavaFX UI控件教程(二十八)之UI控件的自定义
翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...
- JavaFX UI控件教程(二十二)之Titled Pane和Accordion
翻译自 Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合. 标题窗格是带标题的面板.它可以打开和关闭,它可以封装任 ...
- JavaFX UI控件教程(二十)之HTML Editor
翻译自 HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...
- JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator
翻译自 Progress Bar and Progress Indicator 在本章中,您将了解进度指示器和进度条,以及可视化JavaFX应用程序中任何操作进度的UI控件. 本ProgressIn ...
- JavaFX UI控件教程(十六)之Separator
翻译自 Separator 本章介绍如何使用分隔符组织JavaFX应用程序的UI组件. SeparatorJavaFX API中可用的类表示水平或垂直分隔线.它用于划分应用程序用户界面的元素,不会产 ...
- JavaFX UI控件教程(十五)之Combo Box
翻译自 Combo Box 本章介绍如何在JavaFX应用程序中使用组合框.它讨论了可编辑和不可编辑的组合框,教您如何跟踪可编辑组合框中的更改并处理它们上的事件,并解释如何使用单元工厂来更改组合框 ...
最新文章
- 本地化ASPXPivotGrid控件
- Vmware虚拟机网络及IP配置
- SQLAlchemy 报错 NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported 解决方法
- oracle+semijoin,Semi join 与anti join
- 6 个步骤,搞定 AI 车牌识别器!(附详细分析)
- linux安装mpich
- FTP Client Setup
- DNS服务器之二:从服务器的实现
- java左侧菜单栏_左侧和右侧导航栏项目左侧的Bootstrap 3 Navbar Collapse菜单
- obspy中文教程(六)
- 我不 大冰2017新书pdf免费下载
- 程序员面试必备软技能,值得收藏!
- Django模型中的关系:一对一、一对多与多对多
- 美国西储大学滚动轴承实验数据
- html页面怎么保存和读取cookie 推荐MDN封装的cookie方法
- Idea开发springBoot 中使用 thymeleaf 模板$表达式报红波浪线解决方案
- 【面试招聘】计算机网络专场(一)
- 单片机c语言彩灯依次点亮,基于单片机的LED彩灯控制器
- FreeBSD 配置经验
- IDEA this license K71U8DBPNE has bean cancelled
热门文章
- 81. 搜索旋转排序数组 II(014)二分查找+思路+详解+二种做法
- Mysql中group by 使用中发现的问题
- [mybatis]缓存_缓存原理图
- [设计模式]简单工厂和工厂方法模式适用场景
- [PAT乙级]1020 月饼
- [Java基础]体验Lambda表达式
- sql if 和insert_拼多多面试:Mybatis是如何实现SQL语句复用功能的?
- 噪声与振动控制工程手册_声学分享客噪声与振动控制篇大型隔振工程案例介绍...
- 交通标志识别项目教程
- 机器学习朴素贝叶斯算法+tkinter库界面实现好瓜坏西瓜分类