Java语言程序设计基础篇_编程练习题**16.17(使用ScrollBar和Slider)

news2024/9/24 15:29:09

目录

**16.17(使用ScrollBar和Slider)

习题思路

示例代码

结果展示 


**16.17(使用ScrollBar和Slider)

  编写一个程序,使用滚动条或者滑动条选择文本的颜色,如图16-43所示。使用四个水平滚动条选择颜色(红色、绿色、和蓝色),以及透明度的百分比。

  • 习题思路
  1. 创建一个HBox,用于放置文本。
  2. 创建一个GridPane,创建四个Label和四个水平滚动条,并依次添加到布局中。
  3. 创建一个BorderPane,将HBox设置在顶部,将GridPane设置在中心。
  4. 为四个水平滚动条注册事件监听器,当值滚动条的值改变时,分别获取四个滚动条的值(因为滚动条初始的值是0~100,需要除以100才能作为传入Color的参数),再以new Color(r, g, b, a)设置到text文本的颜色上
  • 示例代码

编程练习题16_17UseScrollBarAndSlider.java

package chapter_16;


import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollBar;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class 编程练习题16_17UseScrollBarAndSlider extends Application{
	private ScrollBar sbRed = new ScrollBar();
	private ScrollBar sbGreen = new ScrollBar();
	private ScrollBar sbBlue = new ScrollBar();
	private ScrollBar sbAlpha = new ScrollBar();
	Text text = new Text("Show Colors");
	@Override
	public void start(Stage primaryStage) throws Exception {
		HBox hBox = new HBox(text);
		hBox.setAlignment(Pos.CENTER);
		hBox.setPadding(new Insets(15, 15, 10, 10));
		
		
		GridPane gridPane = new GridPane();
		gridPane.setHgap(10);
		gridPane.setAlignment(Pos.CENTER);
		
		Label lbRed = new Label("Red   ",sbRed);
		lbRed.setContentDisplay(ContentDisplay.RIGHT);
		lbRed.setGraphicTextGap(20);
		Label lbGreen = new Label("Green",sbGreen);
		lbGreen.setContentDisplay(ContentDisplay.RIGHT);
		lbGreen.setGraphicTextGap(20);
		Label lbBlue = new Label("Blue  ",sbBlue);
		lbBlue.setContentDisplay(ContentDisplay.RIGHT);
		lbBlue.setGraphicTextGap(20);
		Label lbAlpha = new Label("Alpha",sbAlpha);
		sbAlpha.setValue(100);
		lbAlpha.setContentDisplay(ContentDisplay.RIGHT);
		lbAlpha.setGraphicTextGap(20);
		
		gridPane.add(lbRed, 0, 0);
		gridPane.add(lbGreen, 0, 1);
		gridPane.add(lbBlue, 0, 2);
		gridPane.add(lbAlpha, 0, 3);
		gridPane.add(sbRed, 0, 0);
		gridPane.add(sbGreen, 1, 1);
		gridPane.add(sbBlue, 2, 2);
		gridPane.add(sbAlpha, 3, 3);
		
		BorderPane borderPane = new BorderPane();
		borderPane.setTop(hBox);
		borderPane.setCenter(gridPane);
		
		sbRed.valueProperty().addListener(ov ->{
			setColor();
		});
		sbGreen.valueProperty().addListener(ov ->{
			setColor();
		});
		sbBlue.valueProperty().addListener(ov ->{
			setColor();
		});
		sbAlpha.valueProperty().addListener(ov ->{
			setColor();
		});
		
		Scene scene = new Scene(borderPane,250, 150);
		primaryStage.setTitle("编程练习题16_17UseScrollBarAndSlider");
		primaryStage.setScene(scene);
		primaryStage.show();
	}
	public static void main(String[] args) {
		Application.launch(args);
	}
	public void setColor() {
		double r = Double.valueOf(sbRed.getValue())/100.0;
		double g = Double.valueOf(sbGreen.getValue())/100.0;
		double b = Double.valueOf(sbBlue.getValue())/100.0;
		double a = Double.valueOf(sbAlpha.getValue())/100.0;
		System.out.println("r:"+r);
		System.out.println("g:"+g);
		System.out.println("b:"+b);
		System.out.println("a:"+a);
		text.setFill(new Color(r, g, b, a));
	}
}
  • 结果展示 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【STM32F4】——DMA初始化结构体详解

一.DMA_InitTypeDef 初始化结构体 typedef struct {uint32_t DMA_Channel; //通道选择 uint32_t DMA_PeripheralBaseAddr;//外设地址uint32_t DMA_Memory0BaseAddr; //存储器 0 地址uint32_t DMA_DIR; //传输方向 uint32_t DMA_BufferSize; /…

售后服务认证的价值:权威认证带来的全方位优势

在当今竞争激烈的市场环境中,企业要想脱颖而出,不仅仅需要过硬的产品质量,更需要卓越的售后服务。售后服务认证作为一种权威认证,正日益成为企业在全国范围内展示服务领先性的关键工具。本文将详细阐述售后服务认证所带来的多重价…

virtualbox 安装 win7 系统注意事项

win7可用ISO镜像 virtualbox安装Windows 7 64位旗舰版 (包含镜像文件)_virtual pc安装64位windows7-CSDN博客 视图设为了自动缩放,没有菜单了怎么办? 通过按右侧CtrlC/F/L进行切换 复制黏贴不公用怎么办? 宿主机有…

《计算机组成原理》(第3版)第10章 控制单元的设计 复习笔记

第10章 控制单元的设计 一、组合逻辑设计 (一)组合逻辑控制单元框图 简化的控制单元框图,如图10-1所示。 图10-1 带译码和节拍输入的控制单元框图 (二)微操作的节拍安排 安排微操作节拍时应注意以下3点&#xff1a…

OpenCv学习-python

一.OpenCv介绍 简介 OpenCV(Open Source Computer Vision Library:opencv官网地址)是一个开源的基于BSD许可的库,它包括数百种计算机视觉算法。文档OpenCV 2.x API描述的是C API,相对还有一个基于C语言的OpenCV 1.x API&#xf…

生成式人工智能服务大模型——安全评估要求

(推荐性条款是指能愿动词为“宜”或“不宜”的条款)正式稿许多调整有调整。 自行开展安全评估的,评估报告应至少具有三名负责人共同签字。 单位法定代表人(表述更正)。 整体负责安全评估工作的负责人,应为单…

多串口互传指令代码遇到的问题

1.首先是字节格式,因为串口底层是一字节一字节的传输,所以每个要传输的字符与16进制数都要经过设计一定要保证是一字节一字节的发送 下面是把字符串拆分成字节一个一个发送示例 void Serial_SendString(char *String) {uint8_t i;for (i 0; String[i]…

泛微OA流程监控设置

泛微OA的流程监控设置问题 简单介绍 给流程设置监控主要是为了对系统中流转的流程进行相应的监控,例如对流程进行流程干预、强制归档、删除、查看等操作 如何设置 监控设置这个需要有相应后台权限账号的用户进行设置,进入流程引擎----->监控管理-…

用uniapp写app,想要打包后横屏显示的方法

在网络上找了很多方法,打包之后都没什么用,该竖屏还是竖屏,挺无语的,最后试了一种方法才解决了打包后也横屏显示的方法 在 pages.json 文件中: "pageOrientation": "auto" 这一条属性即可 设置…

可视化大屏适不适合组件化?报表类的很适合,数字孪生也可以

有小伙伴们问,可视化大屏能不能组件化,其实没问题的,而且已经很常见 也很成熟了,比如一些报表软件,把组件拖到画布上,设置一下,对接一下数据源,很快就做好了。 即便在UI设计环节&am…

【docker】docker资源管理

docker资源管理 docker cpu管理 Docker提供了多种方式来管理容器的CPU使用情况,包括以下几种方法: CPU限制:使用--cpus参数可以限制容器使用的CPU核心数。例如,docker run --cpus 2将限制容器使用2个CPU核心。CPU共享&#xff…

iPhone如何全选删除照片:一步到位的清理指南

随着时间的推移,iPhone中的照片会迅速累积,最终可能占据大量的存储空间。无论是为了释放空间,还是整理照片库,iPhone如何全选删除照片成为许多用户的需求。然而,iPhone原生的“照片”应用并没有直接提供“全选删除”功…

软考学习笔记(0):软考准备

文章目录 前言软考的优点软考项目的选择资料选择时间安排 前言 最近因为某些原因,我又开始上班了。新工作是纯内网开发,那以后发博客的频率我估计就会很少了。 软考的优点 简单来说,软考考上了,大概一个月的薪资可以涨1000-300…

使用JvisualVM 连接linux远程服务器

一、添加配置 在 java 启动参数中添加如下配置 -Dcom.sun.management.jmxremotetrue -Djava.rmi.server.hostname服务器IP(公网) -Dcom.sun.management.jmxremote.port端口号 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse添加…

树莓派智能语音助手之ASR2 – sherpa-ncnn

前几天虽然让树莓派学会了“听”(《树莓派智能语音助手之ASR – SpeechRecognitionPocketSphinx》),但是,PocketSphinx的识别效果真心不咋的。可我的树莓派因为系统等原因,一直装不了sherpa-onnx。正当我只能无奈地接受…

Windows配置开机直达桌面并跳过锁屏登录界面在 Windows 10 中添加在启动时自动运行的应用

目录 Win10开机直达桌面并跳过锁屏登录界面修改组策略修改注册表跳过登录界面 在 Windows 10 中添加在启动时自动运行的应用设置系统级别服务一、Windows下使用sc将应用程序设置为系统服务1. 什么是sc命令?2. sc命令的基本语法3. 创建Windows服务的步骤与示例创建服…

spring boot同时连接两个数据库

一、需求说明 1. 项目要求同时操作两个数据库&#xff0c;一个在本地服务器&#xff0c;一个在云服务器。 2. 两个数据库均为SQL server数据库。 二、实现 1. 在pom中导入多数据源依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynam…

【Kubernetes】身份认证与鉴权

一&#xff0c;认证 所有 Kubernetes 集群有两类用户&#xff1a;由Kubernetes管理的ServiceAccounts(服务账户)和(Users Accounts)普通账户。 两种账户的区别&#xff1a; 普通帐户是针对(人)用户的&#xff0c;服务账户针对Pod进程普通帐户是全局性。在集群所有namespaces…

ansible安装K8s

部署Kubernetes (k8s) 集群使用Ansible是一个常见的自动化解决方案。下面我将提供一个基本的步骤概述和所需的命令&#xff0c;用于在CentOS 7.8上使用Ansible部署k8s集群&#xff0c;包括Master节点和Worker节点&#xff08;Web和DB节点&#xff09;。 步骤 1: 准备环境 确保所…

# 利刃出鞘_Tomcat 核心原理解析(七)

利刃出鞘_Tomcat 核心原理解析&#xff08;七&#xff09; 一、Tomcat专题 - Tomcat管理配置 - host-manager 1、Tomcat 管理配置 从早期的Tomcat版本开始&#xff0c;就提供了Web版的管理控制台&#xff0c;他们是两个独立的Web应用&#xff0c;位于webapps目录下。Tomcat …