JavaFX UI控件教程(十一)之Scroll Pane
翻译自 Scroll Pane
在本章中,您将学习如何在JavaFX应用程序中构建滚动窗格。
滚动窗格提供UI元素的可滚动视图。此控件使用户可以通过平移视口或使用滚动条来滚动内容。具有默认设置和添加的图像的滚动窗格如图10-1所示。
创建滚动窗格
示例10-1显示了如何在应用程序中创建此滚动窗格。
Image roses = new Image(getClass()。getResourceAsStream(“roses.jpg”));
ScrollPane sp = new ScrollPane();
sp.setContent(new ImageView(roses));
设置滚动窗格的滚动条策略
本ScrollPane
类提供了一个政策来确定何时显示滚动条:永远,永远,或只在需要的时候。使用setHbarPolicy
和setVbarPolicy
方法分别为水平和垂直滚动条指定滚动条策略。因此,在例10-2中,将出现垂直滚动条,而不是水平滚动条。
sp.setHbarPolicy(ScrollBarPolicy.NEVER);
sp.setVbarPolicy(ScrollBarPolicy.ALWAYS);
调整滚动窗格中的组件大小
在设计UI界面时,您可能需要调整组件的大小,以使它们与滚动窗格的宽度或高度相匹配。设置setFitToWidth
或setFitToHeight
方法true
以匹配特定维度。
图10-3中显示的滚动窗格包含单选按钮,文本框和密码框。内容的大小超出滚动窗格的预定义大小,并显示垂直滚动条。但是,由于该setFitToWidth
方法true
为滚动窗格设置,因此内容的宽度会缩小,而不会水平滚动。
本ScrollPane
类允许您检索和设置当前,最小和内容最大值在水平和垂直方向。了解如何在您的应用程序中使用它们。
使用滚动窗格的示例应用程序
示例10-3使用滚动窗格显示带有图像的垂直框。该类的VVALUE
属性ScrollPane
有助于识别当前显示的图像并呈现图像文件的名称。
package scrollpanesample;import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;public class Main extends Application {final ScrollPane sp = new ScrollPane();final Image[] images = new Image[5];final ImageView[] pics = new ImageView[5];final VBox vb = new VBox();final Label fileName = new Label();final String [] imageNames = new String [] {"fw1.jpg", "fw2.jpg","fw3.jpg", "fw4.jpg", "fw5.jpg"};@Overridepublic void start(Stage stage) {VBox box = new VBox();Scene scene = new Scene(box, 180, 180);stage.setScene(scene);stage.setTitle("Scroll Pane");box.getChildren().addAll(sp, fileName);VBox.setVgrow(sp, Priority.ALWAYS);fileName.setLayoutX(30);fileName.setLayoutY(160);for (int i = 0; i < 5; i++) {images[i] = new Image(getClass().getResourceAsStream(imageNames[i]));pics[i] = new ImageView(images[i]);pics[i].setFitWidth(100);pics[i].setPreserveRatio(true);vb.getChildren().add(pics[i]);}sp.setVmax(440);sp.setPrefSize(115, 150);sp.setContent(vb);sp.vvalueProperty().addListener(new ChangeListener<Number>() {public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {fileName.setText(imageNames[(new_val.intValue() - 1)/100]);}});stage.show();}public static void main(String[] args) {launch(args);}
}
垂直滚动条的最大值等于垂直框的高度。例10-4中显示的代码片段呈现当前显示的图像文件的名称。
sp.vvalueProperty().addListener(new ChangeListener<Number>() {public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {fileName.setText(imageNames[(new_val.intValue() - 1)/100]);}
});
该ImageView
对象将图像高度限制为100像素。因此,当new_val.intValue() - 1
除以100时,结果给出imageNames
数组中当前图像的索引。
在您的应用程序中,您还可以更改垂直和水平滚动条的最小值和最大值,从而动态更新用户界面。
ScrollPane
ScrollBar
JavaFX UI控件教程(十一)之Scroll Pane相关推荐
- 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控件教程(十)之Scroll Bar
翻译自 Scroll Bar 本章介绍如何使用滚动条控件创建可滚动窗格. 本ScrollBar类可以在应用程序中创建滚动窗格和意见.图9-1显示了滚动条的三个区域:拇指,右侧和左侧按钮(或向下和向 ...
- JavaFX UI控件教程(二十一)之Tooltip
翻译自 Tooltip 在本章中,您将了解工具提示,即当鼠标光标悬停该控件时,可以为任何UI控件设置的控件. 的Tooltip类表示通常用于显示关于所述用户接口的控制附加信息的公共UI组件.可以通过 ...
- JavaFX UI控件教程(二十八)之UI控件的自定义
翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为. 您可以通过应用层叠 ...
- JavaFX UI控件教程(二十二)之Titled Pane和Accordion
翻译自 Titled Pane and Accordion 本章介绍如何在JavaFX应用程序中使用accordion和title窗格的组合. 标题窗格是带标题的面板.它可以打开和关闭,它可以封装任 ...
- JavaFX UI控件教程(二十三)之Menu
翻译自 Menu 本章介绍如何创建菜单和菜单栏,添加菜单项,将菜单分组,创建子菜单以及设置上下文菜单. 您可以使用以下JavaFX API类在JavaFX应用程序中构建菜单. 菜单栏 菜单项 菜单 ...
- JavaFX UI控件教程(二十)之HTML Editor
翻译自 HTML Editor 在本章中,您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本. 该HTMLEditor控件是一个功能齐全的富文本编辑器.它的实现基于HTML5的文档 ...
- JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator
翻译自 Progress Bar and Progress Indicator 在本章中,您将了解进度指示器和进度条,以及可视化JavaFX应用程序中任何操作进度的UI控件. 本ProgressIn ...
最新文章
- sysdba登录不需要密码验证?
- python rq asyncio_Python 的异步 IO:Asyncio 简介
- C++中string、char *、char[]的转换
- ftp列表错误,flashfxp列表错误,ftp无法列目录的解决方法
- Ubuntu下安装FTP服务及使用(VSFTPD详细设置)(二)
- vue --- 使用vue在html上显示当前时间
- declare sql语句_SQL语句大全【第二部分】技巧+经典案例
- CentOS7默认的防火墙不是iptables,而是firewalle.
- NYOJ31 - 5个数求最值
- ListIterator和Iterator的区别
- 注解的引入以及注解的使用
- HTML5 video 视频标签使用介绍
- ansys添加力矩_ansys中施加力矩
- 充电头PD协议和QC协议的理解
- 冬天 计算机无法启动不了怎么办,每次到冬天电脑就开不了
- sinon spy_Sinon教程:使用嘲弄,间谍和存根进行JavaScript测试
- 在Linux环境下怎么编译Android源码?
- leapftp 注册码大全
- TestNG框架的环境搭建
- 关于java+selenium识别验证码的问题
热门文章
- 一般动态规划问题合集(Leetcode题解-Python语言)
- [mybatis]Mapper XML Files_CUD
- [剑指offer]面试题34:丑数
- 利用链表实现可合并堆(算法导论第三版思考题10-2)
- 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)
- cg word List5
- java(i++和++i的理解)
- ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
- I. Rise of Shadows(类欧几里得)
- NWERC 2018 A. Access Points 二维转一维 + 单调栈