首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在JavaFX11中设置多个ImageViews的样式而不违反DRY

在JavaFX11中,可以通过CSS样式表来设置多个ImageViews的样式,以避免违反DRY原则(Don't Repeat Yourself)。下面是一种实现方法:

  1. 创建一个CSS样式表文件,例如styles.css。
  2. 在styles.css文件中,定义多个样式类,每个样式类对应一个ImageView的样式。例如:
代码语言:txt
复制
.image-view-1 {
    -fx-background-color: #ff0000; /* 设置背景颜色为红色 */
    -fx-border-color: #000000; /* 设置边框颜色为黑色 */
    -fx-border-width: 2px; /* 设置边框宽度为2像素 */
}

.image-view-2 {
    -fx-background-color: #00ff00; /* 设置背景颜色为绿色 */
    -fx-border-color: #000000; /* 设置边框颜色为黑色 */
    -fx-border-width: 2px; /* 设置边框宽度为2像素 */
}
  1. 在Java代码中,为每个ImageView应用对应的样式类。例如:
代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建ImageViews
        ImageView imageView1 = new ImageView();
        ImageView imageView2 = new ImageView();

        // 为ImageViews添加样式类
        imageView1.getStyleClass().add("image-view-1");
        imageView2.getStyleClass().add("image-view-2");

        // 创建布局并添加ImageViews
        VBox root = new VBox(imageView1, imageView2);

        // 加载CSS样式表
        root.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());

        // 创建场景并设置到舞台
        Scene scene = new Scene(root, 400, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上述代码中,我们创建了两个ImageViews并为它们分别添加了样式类"image-view-1"和"image-view-2"。然后,我们创建了一个VBox布局,并将ImageViews添加到布局中。接着,我们加载了CSS样式表,并将其应用到布局中。最后,我们创建了一个场景并将其设置到舞台中显示。

通过这种方式,我们可以在JavaFX11中设置多个ImageViews的样式,而不违反DRY原则。你可以根据需要定义不同的样式类,并为每个ImageView应用相应的样式类。这样,你可以轻松地管理和修改ImageViews的样式,提高代码的可维护性和重用性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云CSS:腾讯云提供的云服务器,可用于部署JavaFX应用程序。
  • 腾讯云CDN:腾讯云提供的内容分发网络服务,可加速JavaFX应用程序的静态资源加载。
  • 腾讯云VPC:腾讯云提供的虚拟私有云服务,可用于搭建安全可靠的网络环境,保护JavaFX应用程序的数据传输安全。
  • 腾讯云云数据库MySQL:腾讯云提供的MySQL数据库服务,可用于存储JavaFX应用程序的数据。
  • 腾讯云对象存储COS:腾讯云提供的对象存储服务,可用于存储JavaFX应用程序的文件资源。
  • 腾讯云人工智能:腾讯云提供的人工智能服务,可用于在JavaFX应用程序中集成人工智能功能。
  • 腾讯云物联网:腾讯云提供的物联网服务,可用于连接和管理JavaFX应用程序中的物联网设备。
  • 腾讯云移动开发:腾讯云提供的移动开发服务,可用于开发和部署与JavaFX应用程序相关的移动应用。
  • 腾讯云区块链:腾讯云提供的区块链服务,可用于在JavaFX应用程序中构建和管理区块链应用。
  • 腾讯云虚拟机:腾讯云提供的虚拟机服务,可用于部署JavaFX应用程序的运行环境。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

软件设计原则——DRY(Dont Repeat Yourself)和KISS( Keep It Simple, Stupid)

在本文中,我将探讨软件设计原则及其优点,为什么设计原则对我们有用,以及如何在日常编程实现它们。我们将探索DRY和KISS软件设计原则。...违反DRY原则 “我们喜欢敲代码”(或者“浪费每个人时间”):“我们喜欢敲代码”意味着一遍又一遍地写同样代码或逻辑。...这样让管理代码变得很困难,如果任何逻辑发生变化,那么我们必须在代码所有地方进行更改,从而浪费时间。 如何实现DRY 为了避免违反DRY原则,需要把你系统分成几部分。...DRY原则一个很好例子是企业库enterprise librarieshelper类,其中每行代码都在库libraries和helper类是惟一。...只要有冗长代码,就将其分为多个方法,右键单击并在编辑器重构。试着写一些小代码块来完成一个任务。

3.6K20

设计模式(07)——设计原则(2)

其实也是懂都懂,代码也展示了(因为太复杂了,所以展示了-v-),为什么逻辑复杂不能作为判断依据呢???...** 后续会有一篇文章,来专门讲解如何在软件设计,防止过度设计,但对对应该优化,该留好优化点如何实现。...但该规则跟 KISS 原则一样,听起来可能比较简单,但是在实际使用,却要注重一个原则。 因为在该原则,有一个很关键点,什么样代码是重复代码,只是简单代码一样就是违反该原则了吗?...答案是这两段代码是重复代码,虽然这两段代码实现逻辑不一致,代码编写也不一致,但其仍然违反DRY 原则,因为这两段代码所实现点是一样,下面我们来看一下这样重复代码会带来什么隐患。...,应该能很简单看出有一段代码被执行了两次,那么这样设计违反DRY 原则吗?

25820

Java 程序员应在2019年学习10条面向对象(OOP)设计原则

(Don't repeat yourself) 我们第一个面向对象设计原则是 DRY,顾名思义,DRY(不要重复造轮子)意味着不要编写重复代码,而是使用Abstraction 在一个地方抽象常见东西...6.偏爱组合不是继承 如果可能的话,我主张使用组合不是继承。你们某些人可能会争论这一点,但我发现 Composition 比 Inheritance灵活得多。...组合允许通过在运行时设置属性并使用接口来构成一个类,从而在运行时更改类行为,因此我们使用了多态性,该多态性可以随时随地替换更好实现。...大多数情况是在一个接口包含多个功能且客户端仅需要一个功能没有其他功能时发生。 关联设计是一项棘手工作,因为一旦发布接口,您就必须在破坏所有实现情况下进行进行更改。...9.使用接口不是实现 始终使用接口不是使用实现编程,这将导致灵活代码可以与任何新接口实现一起使用。 因此,在Java对变量,方法返回类型或方法参数类型使用接口类型。

53530

面向对象设计4原则 原

若这时添加大乐透彩种校验,需要修改OCPDemovalidate代码,加入另外一个else if 分支,这违反了OCP原则,并没有对修改关闭。...这里仅仅以继承方式来解决上边问题,解法唯一。 OCP不仅仅是继承 OCP关系到灵活性,不只是继承。...result.close(); stmt.close(); 如果每调用查询一次数据库均要写上述代码,绝对会非常累,也违反DRY原则,系统中会出现大量重复代码。...这个是明显遵循DRY,当然产品经理可能没有听说过DRY,如果你遇到了这种情况,请默默在心里将需求凝练下即可。例如: 应按规则回收红包,规则如下: a. 未使用在红包活动过期后回收 b....总结 类应该对扩展开发,对修改关闭。(OCP) 通过将共同之物抽取出来并置于单一地方避免重复程序代码(DRY) 系统每一个对象应该具有单一职责,所有对象服务都应该聚焦在实现该职责上。

52120

android 自定义Viewpager实现无限循环

前言:经常会看到有一些appbanner界面可以实现循环播放多个广告图片和手动滑动循环。本以为单纯ViewPager就可以实现这些功能。但是蛋疼事情来了,ViewPager并不支持循环翻页。...                .showImageForEmptyUri(R.drawable.icon_empty) // 设置图片Uri为空或是错误时候显示图片                 ...) // 设置下载图片是否缓存在内存                 .cacheOnDisc(true) // 设置下载图片是否缓存在SD卡 // .displayer(new RoundedBitmapDisplayer...,默认轮播,轮播一定是循环      *       * @param isWheel      */ public void setWheel(boolean isWheel) {  ...为了在进行滚动时阻断父ViewPager滚动,可以 阻止父ViewPager滑动事件      * 父ViewPager需要实现ParentViewPagersetScrollable方法

3.3K70

《微服务设计》第 4 章 集成

实际监控活动是针对每个服务,但最终需要把监控结果映射到业务流程 使用异步方式有利于协同方案实施,从而大大减少服务间耦合,这恰恰就是我们为了能独立发布服务追求特性 针对请求 / 响应方式,...REST 风格包含了很多原则和限制,但是这里我们仅仅专注于,如何在微服务世界里使用 REST 更好地解决集成问题。.../bliki/CatastrophicFailover.html) 代码 bug 外,我们还忘了设置一个作业最大重试次数。...调用本身可以是阻塞或者非阻塞 ---- 4.11 微服务世界DRY和代码重用危险 我经验是:在微服务内部不要违反 DRY,但在跨服务情况下可以适当违反 DRY。...然后等到老消费者都采用了新方式,再通过收缩 API 去掉旧功能 4.13.5 同时使用多个版本服务 另一种经常被提起版本管理方法是,同时运行不同版本服务,然后把老用户路由到老版本服务,新用户可以看到新版本服务

56440

【五分钟阅读系列】程序员修炼之道——7:重复危害

或者,就像那些异形计算机,你程序将因为自相矛盾被迫屈服。这不是你是否能记住问题,而是你何时忘记问题。   你会发现DRY原则在全书中一再出现,并且常常出现在与编码无关语境。...不管最终解决方案是什么,我们都应避免这种规范数据。   当我们拥有多个互相依赖数据元素时,会出现一种不那么显而易见规范数据。...,你可以因为性能原因而选择违反DRY原则。...这经常会发生在你需要缓存数据,以避免重复昂贵操作时。其诀窍是使影响局部化。对DRY原则违反没有暴露给外界:只有类方法需要注意“保持行为良好”。...设置论坛,用以讨论常见问题(在过去一些项目中,我们设置了私有的Usenet新闻组,用于让开发者交换意见,进行提问。

1.1K20

程序员修炼之道 — DRY 原则

但是对于DRY原则,会比较容易陷入如下一些思维陷阱: 陷阱一:随时关心代码重用性 代码重复通常有以下三种类型:   1....总结: 对于DRY原则,需要明白是不要为了遵从设计原则而设计,并不是代码重复了就一定是坏代码,不能以代码是否违反DRY原则去判断重复代码好坏。...如果过分纠结于以违反原则为代码基本,就会掉入上述思维陷阱。宁可重复,也不能错误地对代码进行抽象。不能为了代码抽象创建抽象。...在技术选型时,DRY原则可以帮助我们对于一些组件复用本质以及功能实现时减少一些新奇想法冲突,不是仅仅纠结于所编写代码是否重复了。...DRY原则是最简单也是最被容易理解,但是同时也是最难被应用DRY原则初衷是为了帮助我们提升代码可重用性和复用性,可是很多人在使用时却为了不重复引入了更多其他新问题。

46320

Flutter新手入门:从零构建电商应用

在这个系列,我们将学习如何使用google移动开发框架flutter创建一个电商应用。...本系列教程包含如下四个部分,敬请期待: 如何从零构建flutter应用 如何在flutter布局元素 如何在flutter组织数据 如何在flutter展示数据 1....先看一下原始版本: body: Center( child: Text('Hello World'), ) Flutter布局元素(也是widget)可以根据其是否支持包含多个widget,简单地归类为两种类型...例如,Container、Padding只能包含一个子widget,Row、Column则可以包含多个。...在我们开始设置组件样式之前,建议先创建一个新widget来处理样式问题,以便遵循DRY(Don't Repeat Yoursel)原则。

3.1K30

Android实现自动轮播图效果

中去,以方便在VIewPager适配器里instantiateItem方法获取. imageViews.add(imageView); //进行点添加,其个数和图片个数一致,因此放到该循环中.222...,设置ViewPager条目个数.一般就是集合或者资源数组长度....Object,直接是View,因为虽然99%是view,但也有可能是Fragment,所以用Object,提高了可扩展性....motionEvent.getActivity.333 * 另一种实现思路,是在ViewPager监听事件里面,对ViewPager状态进行判断.闲置-滑动,和用户交互-移除滑动. * public...--此处状态选择器选择属性是state_selected,不是state_pressed, 要知道他们区别,引用图片drawable,注意V是大写, 点是根据图片张数,动态创建,所有我们View

1.3K30

写让别人能读懂代码+网页性能管理详解

本文则更多关注于局部代码问题,本文通过举例方式,总结平时常犯错误和优化方式。...当你无法为你方法起一个准确名称时,很可能你方法不止做了一件事,违反了(Do one thing)。特别是你想在方法名中加入:And,Or,If等词时 2....这也是函数式编程为什么越来越火原因之一。 四.关于DRY 平时大家重构代码,一个重要思想就是DRY。...div.style.color = 'blue';div.style.marginTop = '30px'; 上面代码,div元素有两个样式变动,但是浏览器只会触发一次重排和重绘。...第一条是上一节说到,DOM 多个读操作(或多个写操作),应该放在一起。不要两个读操作之间,加入一个写操作。 第二条,如果某个样式是通过重排得到,那么最好缓存结果。

1.1K90

为Vue2集成UIkit

Vue社区上也有一些包装UIkit库,vuikit,但它文档实在太少了,甚至从一开始安装配套都做得非常差,基本上是脱离了UIkit核心样式包和核心脚本编写。...虽然努力可嘉,但这种功能性复制包建议还是不要用,前端最耗就是编译包大小。...' 这样写就违反了一个配置约定,我们不应该将“库”或“依赖包”以全路径方式引入到代码文件,而应该用webpackresolve配置项,用别名来代替全路径。...以下是在webpack配置UIkit样式引用别名: resolve: { alias: { 'vue$': 'vue/dist/vue', 'uikit-css$': 'uikit...插件 上述写法还是不够DRY,为了使用一个包就得引入多个不同依赖库,这种做法实在很难看,此时我们可以选择一个Vue最佳做法,就是用插件形式来包装这种零碎化引入方式。

1.2K20

设计模式之其他原则

我发现,有些同事为了避免开发 library 包缺失频繁地修改 Maven 或者 Gradle 配置文件,提前往项目里引入大量常用 library 包。...KISS 原则讲的是“如何做”问题(尽量保持简单), YAGNI 原则说是“要不要做”问题(当前不需要就不要做)。...DRY 原则(Don’t Repeat Yourself) DRY 原则定义非常简单,我就不再过度解读。今天,我们主要讲三种典型代码重复情况,它们分别是:实现逻辑重复、功能语义重复和代码执行重复。...这三种代码重复,有的看似违反 DRY,实际上并不违反;有的看似违反,实际上却违反了。 实现逻辑重复 功能语义重复 同一个项目中会有两个功能相同函数。...如果把这个原则用在这里,那就是说,我们在第一次写代码时候,如果当下没有复用需求,未来复用需求也不是特别明确,并且开发可复用代码成本比较高,那我们就不需要考虑代码复用性。

27420

巧妙运用补间动画,自定义广告轮播CarouselView 2.0

简单bean文件,支持传入图片和图片描述(可选),然后调用init方法初始化即可,第二个参数是动画,动画也是选传项,设置动画则显示传统轮播控件。   ...第二类是一页显示多个Item动画,这样轮播图看着更时尚也更高端,相比较于第一类,只是多了这样一段代码: /** * 当需要ViewPager一个界面显示多个Item时候,调用改方法。...到此我们已经完成了Scale动画绘制,然后是Aplha动画,从[-1,1]Item是一个从透明到不透明再到透明过程,笔者采用了代码算法,其实可以同设置Scale动画一样,逐步设置。...int newPosition = position % imageViews.size(); //数组总共有5张图片,超过数组长度时,取摸,防止下标越界...ImageView imageView = imageViews.get(newPosition); //把图片添加到container container.addView

1.1K20

设计模式:面向对象设计原则下(ISP、DIP、KISS、YAGNI、DRY、LOD)

相反,如果精心设计,接口就会变得越来越庞大,会带来两个问题: 1、在一个更高层接口中添加一个方法只是为了某一个子类使用,所有的子类都必须对其实现,或提供一个默认实现; 2、接口中包罗万象,调用者可能会误用其中方法...接口隔离原则更侧重于接口设计,另一方面就是思考角度不同,在上面例子,按照普通租户和管理员两种不同角色维度来思考并进行拆分。...DRY DRY 全称是:Don’t Repeat Yourself ,就是不要重复自己,提升代码复用性,告别 CV 大法。...很多初级程序员都喜欢面向 Ctrl+C、Ctrl+V 编程,当需求变化时候,很容易就遗漏一些场景,但即便是复制粘贴也不完全都是违反 DRY 。...代码重复有两种情况: 1、代码逻辑重复,语义也重复:这种违反DRY ,需要进行重构; 2、代码逻辑重复,语义不重复:在某个阶段,两段代码逻辑是相同,但其实是两种不同应用场景,语义不一样,就没有违反

40510

微服务之集成(四)下

其漂亮之处在于,我们可以把多个不同调用组合起来,这样就可以更容易对下游服务并发调用做处理。 11.微服务世界DRY和代码重用危险 DRY, Don’t Repeat Yourself。...使用DRY可以得到重用性比较好代码。把重复代码抽取出来,然后就可以在多个地方进行调用。比如说可以创建一个随处可用共享库。但是这个方法在微服务架构可能是危险。...但是使用像日志库这样公共代码就没什么问题,因为它们对外是不可见。 推荐做法:在微服务内部不要违反DRY,但在跨服务情况下可以适当违反DRY。...13.5 同时使用多个版本服务 另一种经常被提起版本管理方法是,同时运行不同版本服务,然后把老用户路由到老版本服务,新用户可以看到新版本服务。 ?...与任何一种聚合层类似,使用这种方法风险在于包含不该包含逻辑。业务逻辑应该处在服务不应该泄露到这一层。这些BFF应该仅仅包含与实现某种特定用户体验相关逻辑。

47430

5个需要避免CSS错误

正如我们今天所知,CSS语言是web一个重要组成部分。它使我们有能力绘制元素在屏幕、网页或其他媒体展示方式。 它简单、强大,而且是声明式。我们可以很容易地实现复杂事情,暗黑/光明模式。...在这篇文章,我们将总结出5个最常见错误以及如何避免它们。 1. 预先设计 不经过思考,立马动手,这样可能会更快完成任务,这也给了我们一种速度和成就感。但,从长远来看,这会有相反效果。...有一个明确目标将帮助我们选择最好工具。这将使我们免于冗余和违反DRY。 有许多有效方法来设计一个应用程序。最常见无效是即兴创作。 我们代码必须是可预测,易于扩展和维护。.../* ❌ 由于我们只是在设置一个属性,所以不需要使用简写。...important 错误使用 !important 规则用于覆盖特定性规则。它使用主要集中在覆盖一个不能以任何其他方式覆盖样式。 它通常用于更具体选择器可以完成任务场景。

42010

提高代码可读性10个技巧

在这些示例,使用注释(或文档)类型基于PHPDoc,IDE则是基于Aptana。 2....当然,缩进样式并不总是完全不同,有时,它们也会混合不同规则。例如,在PEAR编码标准,大括号“{”会与控制结构保持一致;但是,它们也会被放在函数定义后下一行。...DRY Principle(干燥原理) DRY意思是不要重复,即DIE: Duplication is Evil....下面是Jeffrey Way解释如何在CodeIgniter创建模板。...一致临时命名 通常,变量应该是描述性,并且包含一个或多个单词。但是,这并不一定适用于临时变量,它们可以像一个字符一样短。 对于相同类型临时变量,使用一致命名是很好做法。

77970
领券