JavaFX技巧12:在CSS中定义图标

当您是像我这样来自Swing的UI开发人员时,您很有可能仍在代码中直接设置图像/图标。 最可能是这样的:

import javafx.scene.control.Label;
import javafx.scene.image.ImageView;public class MyLabel extends Label {public MyLabel() {setGraphic(new ImageView(MyLabel.class.getResource("image.gif").toExternalForm()));}
}


imageexample

在此示例中,通过Class.getResource()查找图像文件,将URL传递到ImageView节点的构造函数,并且将该节点设置为标签上的“ graphic”属性。

这种方法效果很好,但是使用JavaFX则有更优雅的方法。 您可以将图像定义放入CSS文件中,以便您和/或其他人轻松替换它(营销部门已决定再次更改公司标识)。

可以通过以下方式获得与上述相同的结果:

import javafx.scene.control.Label;public class CSSLabel extends Label {public CSSLabel() {getStyleClass().add("folder-icon");}
}

现在您显然也需要一个CSS文件:

.folder-icon {-fx-graphic: url("image.gif");
}

并且在您的应用程序中,您需要将样式表添加到场景图。 在这里,我们将其添加到场景中。

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.stage.Stage;public class MyApplication extends Application {public void start(Stage primaryStage) throws Exception {CSSLabel label = new CSSLabel();label.setText("Folder");label.setAlignment(Pos.CENTER);Scene scene = new Scene(label);scene.getStylesheets().add(MyApplication.class.getResource("test.css").toExternalForm());primaryStage.setScene(scene);primaryStage.setTitle("Image Example");primaryStage.setWidth(250);primaryStage.setHeight(100);primaryStage.show();}public static void main(String[] args) {launch(args);}
}

使用这种方法,您可以将控件及其外观完全分开,并且还可以轻松进行自定义。

翻译自: https://www.javacodegeeks.com/2014/07/javafx-tip-12-define-icons-in-css.html

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

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

相关文章

被嫌弃的eval和with

前面的话 eval和with经常被嫌弃,好像它们的存在就是错误。在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被斥为不规范,矫枉过正。那关于eval和with到底是什么情况呢?本…

短信猫常用AT指令

AT指令短信猫通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等。AT指令基本用法:1. 测试命令(Test Command)在AT指令后面加上“?”即构成测试命令。例如“ATCSCS?”会列举出所有支持的字符集。…

第八次点评

本周心得: 本周没有作业 ,批改的上周的作业。需求分析以及团队的明确分工是开发前准备的要素。本次批改主要侧重于需求分析的调研。 博客园地址https://www.cnblogs.com/zhaojh123/ 博客园点评博客: https://www.cnblogs.com/yanqignkui-123/…

JDBC、Tomcat为什么要破坏双亲委派模型?

问题一:双亲委派模型是什么 如果一个类加载器收到了加载某个类的请求,则该类加载器并不会去加载该类,而是把这个请求委派给父类加载器,每一个层次的类加载器都是如此,因此所有的类加载请求最终都会传送到顶端的启动类加…

JavaFX技巧8:美丽深层

如果要为JavaFX开发UI框架,请养成一种习惯,始终将自定义控件拆分为控件类和外观类。 来自Swing自己,这对我来说并不明显。 Swing还使用MVC概念并将实际的组件呈现委托给UI委托,但是扩展Swing的人们大多将其控件之一子类化&#xf…

dpdk之路-环境部署

dpdk实验环境部署 1、实验环境说明 vmware workstatioin 12 centos 7.5.1804 dpdk-stable-18.11.1 2、实验步骤 (1)虚拟机安装 http://vault.centos.org/7.5.1804/isos/x86_64/从链接下载CentOS-7-x86_64-DVD-1804.iso,安装时需要准备3张虚拟…

管理好我的业务人员

我所在的一家公司属于一家典型的以业务员为主的公司,没有业务员就无法生存下去的这样一家公司。但在平时的一些管理方面我经常会发现以下几点问题:1. 某些业务人员有时候认为天高皇帝远,我在外面工作,公司不可能派人跟踪管理的。2…

initial、inherit、unset、revert和all

前面的话 在CSS中,有4个关键字理论上可以应用于任何的CSS属性,它们是initial(初始)、inherit(继承)、unset(未设置)、revert(还原)。而all的取值只能是以上这4个关键字。本文将介绍initial、inherit、unset、revert和all initial 表示元素属性的初始默认…

基于知识图谱的医疗诊断系统论文

本作品禁止任何人/企业申请专利,禁止任何人使用本作品参加任何比赛或作为毕业设计,如使用本作品源码进行商业用途务必联系作者。 一.科学性 1.研究意义 信息科技经过 60 余年的发展,已经普及到社会生活的每一个角落。随着信息技术在国家治理、…

SpringBoot:SpringBoot简介

SpringBoot ...如今,有关SpringBoot的话题很多。 那么,SpringBoot是什么? SpringBoot是一个新的Spring产品组合项目,它通过大幅度减少所需的配置量来构建可立即投入生产的Spring应用程序。 Spring Boot通过基于运行时可用的类路径…

华为云(ECS)-linux服务器中-Ubuntu图形界面安装-解决root登录受限-VNCviwer/Teamviwer远程访问教程...

安装ubuntu-desktop 1.更新软件库 apt-get update2.升级软件 apt-get upgrade3.安装桌面 apt-get install ubuntu-desktop 解决root登录受限 华为云登录进去是guest用户,不能选择登录用户且不需要密码就即可登录。 登录进去会如下警告信息: 首先下载…

两列自适应布局的4种思路

前面的话 前面已经介绍过单列定宽单列自适应的两列布局,而两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式。本文将从float、table、flex和grid来介绍两列自适应布局的4种思路 float 【思路一】float 在单列定宽单列自适应的两列布局中…

机器学习中为什么使用one-hot编码

one-hot编码把分类数据转化为二进制格式,供机器学习使用。 转载于:https://www.cnblogs.com/xin-qing3/p/11447489.html

Java EE并发API教程

这是一个示例章节,摘自Francesco Marchioni编辑的WildFly上的实用Java EE 7开发 。 本章讨论了新的Java EE并发API(JSR 236) ,它概述了使用一组托管资源在Java EE容器上并行执行任务的标准方法。 为了描述如何在您的应用程序中使…

经桥科技与湖南文化艺术产业集团合力打造“网乐潇湘”

签约仪式现场 签约仪式现场 签约仪式现场 经网1月7日讯(记者 陈飞 曹亮) 湖南经桥网络科技有限公司与湖南文化艺术产业集团“网乐潇湘”项目签约仪式隆重举行。经桥科技董事长姜志强、湖南文化艺术产业集团总经理陈介辉等领导出席此次签约仪式。 经桥科技与湖南文化艺术产业集…

文本溢出text-overflow和文本阴影text-shadow

前面的话 CSS3新增了一些关于文本的样式,其中text-overflow文本溢出和text-shadow文本阴影有些特别。因为它们有对应的overflow溢出属性和box-shadow盒子阴影属性。本文将详细介绍这两个作用在文本上的溢出和阴影属性 文本溢出 一般地,人们一提到文本溢出…

python第十三天,函数的嵌套定义,global,nonlocal关键字的使用,闭包及闭包的运算场景,装饰器...

今日内容 1. 函数的嵌套定义 2.global,nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器 函数的嵌套定义 1. 概念:在一个函数内部定义另一个函数 2 .为什么要有函数的嵌套定义: 1) 函数fn2想要直接使用fn1函数的局部变量,可以将fn…

glup打包代码不更新

一开始以为是缓存问题,清完缓存依旧不行。找到打包文件找到自己改的代码是否生效了。发现修改过的代码生效了,but 相同方法存在两个。方法一中是修改后的内容,方法二是未修改的内容。原因:在打包前将原文件复制了一个副本&#xf…

.net反射简介

目录 [隐藏] 1 概述 2 一些在反射中经常使用的类 3 其它 4 示例 .net反射简介-概述 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类型于后期绑定。反射还支持的更高…

带有Angular JS的Java EE 7 –第1部分

今天的帖子将向您展示如何使用Java EE 7和Angular JS构建非常简单的应用程序。 在去那里之前,让我告诉您一个简短的故事: 我不得不承认,我从来都不是Java语言的忠实拥护者,但是我仍然记得我第一次使用它。 我不记得确切的年份&am…