java fx choicebox_JavaFX:具有图像和文本的ChoiceBox

我想用JavaFX ChoiceBox创建一个下拉菜单,其中每个条目都包含一个不同的图标,旁边是一个短文本. (例如,在语言选择器中,左侧有一个小标志,右侧有该语言的名称.)

做这个的最好方式是什么?

我试图通过CSS做到这一点.以下内容几乎可以使用,但是当然它将为所有条目设置相同的图标:

#accChoiceBox .menu-item .label {

-fx-padding: 0 0 0 30px;

-fx-background-size: 20px 20px;

-fx-background-repeat: no-repeat;

-fx-background-image: url("../resources/images/icon.png");

}

所以我想我可以通过#accChoiceBox .menu-item:nth-​​of-type(1).label或类似名称给每个条目一个自己的图标,但是我尝试过的选择器都没有.

解决方法:

好的,只需使用ComboBox而不是ChoiceBox即可解决问题(谢谢James_D).网上有很多有关ComboBoxes中图像的示例和解决方案.无论如何,我也会在这里留下我自己的.

它将仅在ComboBox icon_1.png中提供第一个条目,在第二个icon_2.png中提供第一个条目,依此类推.

comboBox.setCellFactory(new Callback, ListCell>() {

@Override

public ListCell call(ListView p) {

return new ListCell() {

@Override

protected void updateItem(String item, boolean empty) {

super.updateItem(item, empty);

setText(item);

if (item == null || empty) {

setGraphic(null);

} else {

Image icon;

try {

int iconNumber = this.getIndex() + 1;

String iconPath = "MyProject/resources/images/icon_" + iconNumber + ".png";

icon = new Image(getClass().getClassLoader().getResourceAsStream(iconPath));

} catch(NullPointerException ex) {

// in case the above image doesn't exist, use a default one

String iconPath = "MyProject/resources/images/icon_na.png";

icon = new Image(getClass().getClassLoader().getResourceAsStream(iconPath));

}

ImageView iconImageView = new ImageView(icon);

iconImageView.setFitHeight(30);

iconImageView.setPreserveRatio(true);

setGraphic(iconImageView);

}

}

};

}

});

标签:javafx,css,java

来源: https://codeday.me/bug/20191027/1948402.html

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

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

相关文章

虚函数和纯虚函数的区别是什么?

虚函数(impure virtual)  C 的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。  子类可以重写父类的虚函数实现子类的特殊化。  如下就是一个父类中的虚函数:class A{public: virtual void ss(…

java 动态读取配置文件_java读取配置文件的几种方法

java读取配置文件的几种方法在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。一.读取xml配置文…

java 编译 器 ide_Java 8发布一年后,IDE和编译器尚未完全就绪

java 编译 器 ide一年前, 2014年3月18日 ,发布了Java SE 8,并通过lambda表达式和streams API带来了功能性编程的幸福。 这对于我们所有的Java生态系统都是个好消息,许多人已经升级到Java8。Stack Overflow已经提出了将近2500个有关…

windows.h有哪些函数

C语言windows.h库的常用函数1:FindWindow函数该函数可以通过窗口类名或者窗口标题名来查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗…

yxcms安装环境php,Windows7下PHP开发环境安装配置图文方法

操作系统:Windows 7 UltimateWEB服务器:IIS 6.1(内部版本7600)。数据库:MySql5.0.67PHP版本:5.2.13我还担心Win7下可能会不兼容,结果是一点问题都没有。一、安装MySql数据库客户端工具Navicat(导航猫)在这里下载&#…

apache camel_您的Apache Camel应用程序现在包括现成的文档

apache camel几个月前,我在博客中发布了有关即将发布的2.15版本的功能,该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel,请向我解释这些端点选项的含义 。 我们继续沿着这条道路前进,今天我们将其从端点…

C语言的三种基本程序结构是什么

一、顺序结构表达式语句、空语句、函数调用语句、复合语句程序举例&#xff1a;从键盘输入一个大写字母&#xff0c;要求改用小写字母输出。#includeint main(){ char x,y; scanf("%c",&x); if(x > A && x < Z) { …

php gd png透明,调整PNG大小并将其放在PHP / GD中较大的透明背景上?

所以&#xff0c;一切工作正常。我已经调整了源PNG大小并正确定位在创建的背景上&#xff0c;但PNG外部的其他区域变黑。我已经通过使用imagecolortransparent使它变得透明&#xff0c;但是这使png边缘变得光滑。这是我目前正在制作PNG周围的黑色条纹。请记住&#xff0c;我只在…

Hibernate锁定模式– PESSIMISTIC_READ和PESSIMISTIC_WRITE如何工作

介绍 Java Persistence API带有完善的并发控制机制&#xff0c;支持隐式和显式锁定。 隐式锁定机制很简单&#xff0c;它依赖于&#xff1a; 乐观锁定&#xff1a;实体状态更改可以触发版本增加 行级锁定&#xff1a;基于当前运行的事务隔离级别 &#xff0c;INSERT / UPDATE…

C语言中的指针有什么作用

C语言中的指针的作用是&#xff1a;通过指针不仅可以对数据本身&#xff0c;还可以对存储数据的变量地址进行操作。指针就是内存地址&#xff0c;指针变量是用来存放内存地址的变量。指针定义&#xff1a;指针&#xff0c;是C语言中的一个重要概念及其特点&#xff0c;也是掌握…

rsa php openssl,openssl rsa 使用简介

openssl命令的用法密钥的生成a. 生成非对称密钥对openssl genrsa -out rsa.keyb. 指定生成的密钥的位数,默认512openssl genrsa -out rsa_2048.key 2048c. 为私钥添加密码 (一般都不用)openssl genrsa -out rsa_des3.key -des3密钥的查看d. 查看私钥openssl rsa -in rsa.keye. …

docker 绑定宿主_将WildFly绑定到其他IP地址或多宿主上的所有地址

docker 绑定宿主用WildFly的话来说&#xff0c; 接口是一个逻辑名称&#xff0c;用于套接字可以绑定到的网络接口/ IP地址/主机名。 有两个接口&#xff1a;“公共”和“管理”。 “公共”接口绑定用于所有与应用程序相关的网络通信&#xff08;例如&#xff0c;Web&#xff0…

C语言标识符有哪三类

C语言标识符有关键字、用户标识符、预定义标识符三类。C语言规定&#xff0c;标识符只能由字母、数字和下划线组成&#xff0c;并且第一个字符必须是字母或下划线&#xff0c;不能是数字。C语言中的标识符可分为关键字、用户标识符、预定义标识符三类。C语言规定&#xff0c;标…

php system 执行失败,PHP 执行 system、exec 等函数发生错误

2012-12-06 20:451932人阅读评论(0)往往在调用system、exec 等函数时&#xff0c;要么没有反应&#xff0c;要么出错&#xff1a;原因很多&#xff0c;以下是抄别人的&#xff1a;错误分析&#xff1a;1、Warning: system() has been disabled for security reasons该错误是由于…

Hibernate锁定模式– PESSIMISTIC_FORCE_INCREMENT锁定模式如何工作

介绍 在上 一篇 文章中 &#xff0c;我介绍了OPTIMISTIC_FORCE_INCREMENT锁定模式&#xff0c;并将其应用于将子实体版本更改传播到锁定的父实体。 在本文中&#xff0c;我将介绍PESSIMISTIC_FORCE_INCREMENT锁定模式&#xff0c;并将其与乐观的锁定模式进行比较。 相像多于不…

C语言中字符串的结束标志是什么

C语言中字符串的结束标志是【\0】。C语言中没有专门的字符串变量&#xff0c;通常用一个字符数组来存放一个字符串&#xff0c;字符串总是以【\0】作为结束符。\0就是8位的00000000&#xff0c;因为字符类型中并没有对应的这个字符&#xff0c;所以这么写。\0就是 字符串结束标…

php 5.6.27 在某些机器上正常,在 Windows 10 64、PHP 5.6 下重命名中文名文件,提示错误的解决...

1、重命名某个目录中的文件名&#xff0c;其代码&#xff0c;如图1图12、报错&#xff1a;rename(E:/wwwroot/avatar/BEIJI/侯森.jpg,E:/wwwroot/avatar/BEIJI/378477.jpg): ϵͳ&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ָ&#xfffd;&#xfffd;&#xfffd;&am…

c语言中字符常量是什么?

c语言中字符常量是什么&#xff1f;字符常量&#xff1a;一个用单引号括起来的单个字符&#xff08;或字符转义序列或三字母词&#xff09;实质&#xff08;含义&#xff09;&#xff1a;是一个整形值。属于四大基本数据类型&#xff08;分别是整型&#xff0c;浮点型&#xff…

Hibernate锁定模式– OPTIMISTIC_FORCE_INCREMENT锁定模式如何工作

介绍 在我以前的文章中 &#xff0c;我解释了OPTIMISTIC锁定模式是如何工作的&#xff0c;以及它如何帮助我们同步外部实体状态更改。 在本文中&#xff0c;我们将介绍OPTIMISTIC_FORCE_INCREMENT锁定模式的使用模式。 使用LockModeType.OPTIMISTIC &#xff0c;将在当前正在运…

java camel swagger,java – CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES没有反映在swagger.json中

我正在使用Jersey,Jax-rs和swagger(Spring for injection).我的对象有一些成员和嵌入对象,其名称由多个单词组成,在代码中我使用camelCase.我定义了一个解析器,因此按照标准惯例将它们作为下划线发出.问题是,招摇是显然没有拿起这个解析器,所以对象仍然在swagger json中显示为c…