javafx中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()));}
}

在此示例中,通过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

javafx中css选择器

javafx中css选择器_JavaFX技巧12:在CSS中定义图标相关推荐

  1. html中属性选择器是什么,为什么在CSS选择器/ HTML属性中首选使用破折号?

    小编典典 代码完成 我猜破折号是解释为标点符号还是不透明标识符取决于选择的编辑器.但是,根据个人喜好,我更喜欢能够在CSS文件中的每个单词之间切换,并且如果它们之间用下划线分隔并且没有停顿的话,会很烦 ...

  2. javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点

    javafx查找子节点 在我仍在Swing中实现UI的时候,我曾经是MigLayout的忠实拥护者("一个布局管理者来统治所有这些,对吗Mikael?"). 我真正喜欢的功能之一是 ...

  3. 解释如何优化css选择器_购物车解释了CSS选择器

    解释如何优化css选择器 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) 购物车解释了CSS选择器 (CSS Selectors Explained By Go ...

  4. javafx css颜色_JavaFX技巧7:使用CSS颜色常量/派生颜色

    javafx css颜色 在使用FlexCalendarFX时,我不得不定义一组颜色以可视化不同颜色的不同日历的控件. 每个日历不仅提供一种颜色,还提供几种:用于取消选择/选定/悬停状态的背景和文本颜 ...

  5. 这30个CSS选择器,你必须熟记(中)

    关注前端达人,与你共同进步 11.X[href="foo"]:精准属性值选择器 上一小节,我们学习了 X[title] 这样的简单属性选择器,如果你想对属性的值进行精准匹配如何做呢 ...

  6. javafx 表格列拖拉_JavaFX技巧22:“自动调整大小(树)”表列

    javafx 表格列拖拉 JavaFX "缺少功能调查"中提到的"缺少功能"的第一件事就是能够自动调整表/树表中的列大小. 没错,没有公共API是正确的,但是当 ...

  7. javafx如何带菜单_JavaFX技巧30:带有DropShadow的ScrollPane

    javafx如何带菜单 最近,在我的一个项目中,我发现用户很难看到ScrollPane实例的内容当前是否已滚动. 一种更清晰的方法是在滚动窗格的顶部添加阴影. 这也是Google的Material D ...

  8. 简述css选择器的四种类型,CSS选择器的类型,css,种类

    1.标签选择器 以标签名开头,选择所有div元素 2.类选择器 给标签取class名,以点(.)加class名开头,选择所有该class名的元素 3.id选择器 给标签取id名,以#加id名开头,具有 ...

  9. html中井号的作用,html5 css选择器 井号, 句点的区别

    一.理解CSS的样式组成CSS里的样式表是有规则组成的,每条规则有三个部分组成: 1.选择器(如下面例子中的:"body"),告诉浏览器文档的哪个部分受规则影响: 2.属性(如实例 ...

最新文章

  1. C# 调用cmd执行指令
  2. echarts设置折线图属性
  3. 网页解析的全过程(输入url到展示页面)
  4. 原子操作--sync/atomic的用法
  5. Fast DDS Fast DDS主要包括以下内容DDS API、Fast DDS-Gen、RTPS Wire Protocol
  6. Contains的使用,一点经验
  7. 博客堂服务器转移成功!
  8. Windows Server 2012 R2 服务器管理器介绍和配置使用
  9. web前端小故事(浏览器大战)
  10. 【整理】关于Android图形系统的一些事实真相
  11. 日志分析(偏linux)
  12. 统计学习方法概论之思维导图图解
  13. css有哪些动画效果怎么实现的
  14. 关键链项目管理方法的缓冲区管理
  15. 【微软Windows 7操作系统提速技巧总结】
  16. 程序员的自我修养------勘误表
  17. 让QQ群聊天记录自动保存到群空间中(转)
  18. sql注入漏洞与如何解决
  19. CodeM2018游记
  20. 使用echars绘制股票图

热门文章

  1. jzoj3519-灵能矩阵【LCM,树形dp】
  2. ssl提高组周六模拟赛【2018.9.22】
  3. 【深搜】 棋盘 【NOIp普及组 2017 第三题】 (luogu 3956/ssl 2851)
  4. Dubbo(五)之动态配置中心
  5. Mysql的安装与远程登录
  6. 漫画:高并发下的HashMap
  7. java之包装类与BigInteger、BigDecimal
  8. SpringCloudGateway起步
  9. linux将光驱挂载到目录下,Linux操作系统下关于光驱的挂载
  10. java中生成1000~10000之间的随机数