fxml设置背景_JavaFX – 如何获取Tab,Button等的背景颜色
问题描述:我无法在JavaFX中获得对象的背景.我不是指形状,而是像Buttons,Tabs等常规节点.我不知道如何访问他们的背景颜色.
我想要的是?我正在开发IDE,我想在选项卡上运行Color动画,文件是用户想要打开的,并且已经存在于程序文件集合中.在做这个动画之前,我想阅读原始标签背景颜色,并在动画结束时将颜色返回到标签.此外,我想回到悬停和选定的属性,当我在动画中设置一些颜色并且它们永远不会回来时它会消失.我在CSS文件中设置的所有颜色,我不想更改它.
我的问题:如何以编程方式获取和设置节点颜色?或者如何使用保存原始属性进行颜色动画,并在动画结束时获取此属性?
一个简短的例子:
sample.fxml
styles.css的
.tab{
-fx-background-color: pink;}
.tab:hover{
-fx-background-color: red;}
.tab:selected{
-fx-background-color: yellow;}
解决方法:
据我所知,公共API中没有办法确定当前用作区域(包括控件)的背景颜色(除非你知道它是由内联样式设置的,在这种情况下)你可以解析getStyle()的结果或通过调用setBackground(…)来解析.但我认为没理由你会想要这个;如果删除任何内联样式或背景属性,颜色将恢复为css文件中定义的颜色.
这是一个简单的示例,其中背景颜色由线性渐变(通过内联样式)设置,随着任务的进行滑动:
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.IntegerBinding;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ColoredTabDemo extends Application {
private int tabCount ;
@Override
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
for (int i = 0; i < 4; i++) {
tabPane.getTabs().add(createTab());
}
Scene scene = new Scene(tabPane, 600, 400);
scene.getStylesheets().add("colored-tab-demo.css");
primaryStage.setScene(scene);
primaryStage.show();
}
private Tab createTab() {
Tab tab = new Tab("Tab "+(++tabCount));
Button button = new Button("Load file...");
button.setOnAction(e -> {
Task task = new Task() {
@Override
public Void call() throws Exception {
// simulate loading:
for (int i=1; i <= 500; i++) {
updateProgress(i, 500);
Thread.sleep(20);
}
return null ;
}
};
IntegerBinding progressAsPercent = Bindings.createIntegerBinding(() ->
(int) (task.getProgress() * 100), task.progressProperty());
tab.styleProperty().bind(Bindings.format("-fx-background-color: "
+ "linear-gradient(to right, -fx-accent 0%%, -fx-accent %d%%, -fx-background %1$d%%, -fx-background 100%%);",
progressAsPercent));
button.setDisable(true);
task.setOnSucceeded(evt -> {
tab.styleProperty().unbind();
tab.setStyle("");
button.setDisable(false);
});
new Thread(task).start();
});
tab.setContent(new StackPane(button));
return tab ;
}
public static void main(String[] args) {
launch(args);
}
}
colored-tab-demo.css与您发布的几乎完全相同,但使用查找颜色而不是直接设置-fx-background-color:
.tab{
-fx-background-color: -fx-background;
-fx-background: pink ;
}
.tab:hover{
-fx-background: red;
}
.tab:selected{
-fx-background: yellow;
}
标签:java,javafx,animation,background,colors
来源: https://codeday.me/bug/20191008/1873236.html
fxml设置背景_JavaFX – 如何获取Tab,Button等的背景颜色相关推荐
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- MFC 基础知识:对话框背景添加图片和按钮Button添加图片
很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾 ...
- python设置word背景色_Java 给Word不同页面设置不同背景
Java 给Word不同 Word文档中,可直接通过[设计]-[页面颜色]页面颜色,通过Java代码可参考如下设置方法: 1. 设置单一颜色 doc.getBackground().setType(B ...
- Pyqt5 在表格中单元格设置下拉框,并根据选项改变背景颜色
关于怎么在表格中单元格设置下拉框,并根据选项改变背景颜色 def table_combox_init(self):combox_statePlm_jria_list = ['', '无', 'O', ...
- 计算机网络配置IP老是自动出现默认IP,我的电脑设置的是自动获取IP为什么每次开机后IP地址就变了啊!重初學者动设置然后再自动获取才会回来...
自动获取当然会变,设定固定IP就不会了厂里的局域网,自动获取当然会根据当时的不同情况而改变IP地址喽.如果网速慢的话,可以找找厂里分管网络的人员 这个要看你们厂里DHCP服务器如何配置的,一般像你说的 ...
- layui获取tab页id_LayUI的Tab选项卡切换显示对应数据
LayUI tab选项卡 + 分页展示 实现 Tab选项卡切换显示对应数据 要求:实现tab选项卡改变的同时展示数据也跟着改变 实现条件: 1.选项卡[官网 – 文档/示例 – 页面元素 – 选项卡] ...
- Keil5----显示空白符和设置使用空白格表示Tab键
一.Keil5界面----显示空白符 首先打开Keil5-MDK界面,然后按照下面步骤操作. 步骤1:点击 Edit(编辑),然后点击 Configuration(配置) 步骤2:勾选 View Wh ...
- 【PS笔记系列】1.获取图片中某一部分(1)图片背景与要获取的部分相对较明显...
特别说明:图中示例PS版本7.0版,比较老. 本篇中用到的工具 魔棒 图片背景与要获取的部分相对较明显 可以看到上图中的树与背景的对比还是相对明显的,那么现在我想要获得这个树 第一步 点击魔棒,然后点 ...
- 修改Android主题里Button的默认背景颜色
修改Android主题里Button的默认背景颜色 先用这个试试 android:backgroundTint="@null" 去不掉的话用下面这个 app:backgroundT ...
最新文章
- DNS,edns,httpdns杂谈
- jvm类加载机制总结
- 多個excel文件合并到一個excel文件
- mouseover/out和mouseenter/leave的区别及用法
- 操作系统(1) 发展历史
- python 灰度图像素灰度值求和_如何在python中更改灰度图像中特定类型的像素值?...
- 【Docker】文件拷贝
- NB-IOT开发实战
- 【应用软件】用jpg+swf制作gif动感小图(附带AVI转gif技巧)
- 谷歌应用内购神器Freedom原理解析
- vue项目运行npm install报错
- YII2 高级版本 发送163邮件
- switch初始化说服务器维护中,switch国行怎么初始化-switch国行初始化教程
- 秒杀脚本丨Python淘宝或京东等秒杀抢购脚本实现
- android电梯程序设计,[源码和文档分享]基于Android实现的电梯调度模拟
- 好书推荐---单片机编程魔法师之高级裸编程思想
- 第8关:判断条件的相容性
- Scapy功能介绍以及应用
- 机器学习学习笔记-持续学习(Continual Learning/ Life-long Learning)
- ES5、ES6自学笔记
热门文章
- android学习笔记之ProgressDialog的使用
- 使用Combres 库 ASP.NET 网站优化
- 140. Word Break II
- Depth-first Search深度优先搜索专题5
- [Leetcode][第841题][JAVA][钥匙和房间][DFS][BFS]
- 康宁玻璃ct值计算公式_【钦州】CT室铅板生产厂家
- linux 识别文件类型,技术|Linux 中 7 个判断文件系统类型的方法
- php 创建数据库并填充,php操作mysql--连接数据库创建表填充表
- word可以直接导入mysql嘛_如何把word文档导入到数据库中——java POI
- python autoit上传文件_结合python+selenium使用AutoIt V3实现文件、图片上传