javafx css样式_使用CSS设置JavaFX饼图样式

javafx css样式

渲染图表时, JavaFX默认提供某些颜色。 但是,在某些情况下,您想自定义这些颜色。 在此博客文章中,我将使用一个示例来更改JavaFX饼图的颜色,该示例打算在今天下午在2013年RMOUG培训日的演示中包括。一些基于Java的图表API提供了Java方法来设置颜色。 JavaFX诞生于HTML5流行的年代,而是使用级联样式表 (CSS)来允许开发人员调整其图表中使用的颜色,符号,位置,对齐方式和其他样式问题。 我在这里演示了如何使用CSS更改颜色。

在本文中,我将看两个代码示例,这些示例演示了简单的JavaFX应用程序,这些应用程序基于Oracle示例“ hr”模式中的数据来呈现饼图。 首先

该示例未指定颜色,因此将JavaFX的默认颜色用于饼图和图例背景。 那 接下来显示示例。

EmployeesPerDepartmentPieChart(默认JavaFX样式)

package rmoug.td2013.dustin.examples;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;/*** Simple JavaFX application that generates a JavaFX-based Pie Chart representing* the number of employees per department.* * @author Dustin*/
public class EmployeesPerDepartmentPieChart extends Application
{final DbAccess databaseAccess = DbAccess.newInstance();@Overridepublic void start(final Stage stage) throws Exception{final PieChart pieChart =new PieChart(ChartMaker.createPieChartDataForNumberEmployeesPerDepartment(this.databaseAccess.getNumberOfEmployeesPerDepartmentName()));pieChart.setTitle('Number of Employees per Department');stage.setTitle('Employees Per Department');final StackPane root = new StackPane();root.getChildren().add(pieChart);final Scene scene = new Scene(root, 800 ,500);stage.setScene(scene);stage.show();}public static void main(final String[] arguments){launch(arguments);}
}

执行上述简单应用程序后,将显示下一个屏幕快照中显示的输出。

我现在将改编上面的示例,以使用自定义的蓝色主题派切片“主题”,图例上带有棕色背景。 Java代码仅需要一行就可以包含具有图表样式详细信息CSS文件。 在这种情况下,我添加了几行以捕获并打印出尝试加载CSS文件时可能发生的任何异常。 使用这种方法,加载CSS文件时遇到的任何问题都将仅导致说明问题的标准错误输出,并且应用程序将以其正常的默认颜色运行。

EmployeesPerDepartmentPieChartWithCssStyling(自定义CSS样式)

package rmoug.td2013.dustin.examples;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;/*** Simple JavaFX application that generates a JavaFX-based Pie Chart representing* the number of employees per department and using style based on that provided* in CSS stylesheet chart.css.* * @author Dustin*/
public class EmployeesPerDepartmentPieChartWithCssStyling extends Application
{final DbAccess databaseAccess = DbAccess.newInstance();@Overridepublic void start(final Stage stage) throws Exception{final PieChart pieChart =new PieChart(ChartMaker.createPieChartDataForNumberEmployeesPerDepartment(this.databaseAccess.getNumberOfEmployeesPerDepartmentName()));pieChart.setTitle('Number of Employees per Department');stage.setTitle('Employees Per Department');final StackPane root = new StackPane();root.getChildren().add(pieChart);final Scene scene = new Scene(root, 800 ,500);try{scene.getStylesheets().add('chart.css');}catch (Exception ex){System.err.println('Cannot acquire stylesheet: ' + ex.toString());}stage.setScene(scene);stage.show();}public static void main(final String[] arguments){launch(arguments);}
}

接下来显示的是chart.css文件:

chart.css

/*Find more details on JavaFX supported named colors athttp://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#typecolor
*//* Colors of JavaFX pie chart slices. */
.data0.chart-pie { -fx-pie-color: turquoise; }
.data1.chart-pie { -fx-pie-color: aquamarine; }
.data2.chart-pie { -fx-pie-color: cornflowerblue; }
.data3.chart-pie { -fx-pie-color: blue; }
.data4.chart-pie { -fx-pie-color: cadetblue; }
.data5.chart-pie { -fx-pie-color: navy; }
.data6.chart-pie { -fx-pie-color: deepskyblue; }
.data7.chart-pie { -fx-pie-color: cyan; }
.data8.chart-pie { -fx-pie-color: steelblue; }
.data9.chart-pie { -fx-pie-color: teal; }
.data10.chart-pie { -fx-pie-color: royalblue; }
.data11.chart-pie { -fx-pie-color: dodgerblue; }/* Pie Chart legend background color and stroke. */
.chart-legend { -fx-background-color: sienna; }

运行此CSS样式的示例将导致输出,如下一个屏幕快照所示。 切片为不同的蓝色阴影,图例的背景为“ si色”。 请注意,例如,当我使用JavaFX“命名颜色”时,也可以对蓝色使用“#0000ff”。

我的便利类ChartMakerDbAccess没有在此处显示代码。 后者只是通过JDBC从Oracle数据库模式中检索图表的数据,而前者则将该数据转换为适合PieChart(ObservableList)构造函数的Observable集合。

这里需要注意的是,正如Andres Almiray所指出的那样 ,通常不适合像我在本博客和其他博客文章中所做的那样,从JavaFX UI主线程(又名JavaFX Application Thread)执行长时间运行的进程。例子。 我可以在这些文章中忽略它,因为示例很简单,数据库检索很快,并且图表呈现应用程序没有比该呈现更多的内容,因此很难观察到任何“悬挂”。 在以后的博客文章中,我打算探讨使用JavaFX javafx.concurrent包( 在JavaFX的Concurrency中已经对此进行了很好的描述)来处理数据库访问(或任何长时间运行的操作)的更好方法。

JavaFX允许开发人员控制更多,而不仅仅是使用CSS绘制图表颜色。 两个非常有用的资源详细介绍了如何使用CSS样式化JavaFX图表,这是“ 使用JavaFX图表”部分的“ 用CSS样式化图表”和“ JavaFX CSS参考指南” 。 CSS作为一种样式化Web和移动应用程序的方法正变得越来越流行。 通过在JavaFX中支持CSS样式,可以轻松地将与它们共存的基于HTML的应用程序相同的样式应用于JavaFX应用程序。

参考:我们的JCG合作伙伴 Dustin Marx在Inspired by Actual Events博客上使用CSS设置JavaFX饼图样式 。

翻译自: https://www.javacodegeeks.com/2013/02/styling-javafx-pie-chart-with-css.html

javafx css样式

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

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

相关文章

java 异步操作

/** * 异步删除 * * param keys */ public void asycExecute(String keys) { ExecutorService executor Executors.newFixedThreadPool(1); CompletableFuture<String> future CompletableFuture.supplyAsync(new Supplier<String>() { Override public String g…

企业发文的红头文件_【红头文件写作格式】 公司红头文件格式范本

红头文件写作格式 一、红头文件的制作及标准进行页面设臵选择“文件”——“页面设臵”选择“页边距”附签&#xff0c;上&#xff1a;3.7厘米&#xff0c;下&#xff1a;3.5厘米&#xff0c;左&#xff1a;2.8厘米&#xff0c;右&#xff1a;2.6厘米。选择“版式”附签&#x…

matlab 城市间最短路径

clear all;clc;close all; %最短路径代码&#xff0c;输入&#xff1a;起点空格终点&#xff08;大写字母&#xff0c;如:A F&#xff09; % 输出最短路径值d 最短路径路线 % W为一个对称矩阵&#xff0c;如果不能直接到达距离为inf % 本例中A到B距离为12; A到F距离为0; B到…

docker开放的端口_关于docker自动开放端口解决方案

在docker中只要有容器映射了端口docker就会自动加iptablesiptables -L -nChain DOCKER (8 references)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 172.18.0.2 tcp dpt:2379ACCEPT tcp -- 0.0.0.0/0 172.18.0.5 tcp dpt:8888ACCEPT udp -- 0.0.0.0/0 172.18.0.…

即将举行的网络研讨会:调试生产中Java的5种最佳实践

您的团队是否花费超过10&#xff05;的时间在生产环境中调试Java&#xff1f; 将新代码部署到生产中是一项艰巨的任务。 在您的本地环境中起作用的东西在生产中的作用并不相同&#xff0c;您可以通过用户来了解。 不理想吧&#xff1f; 生产中的调试是一个关键要素&#xff0…

保存网页上没有 另存为图片 选项的方法

找到要存储的图片&#xff0c;并点击右键查看源代码 找到图片地址&#xff0c;复制到新的浏览器里打开 将图片 另存为 转载于:https://www.cnblogs.com/lszw/p/11040047.html

BP算法,用梯度下降法更新权值W与偏置项b

Bp算法实际是输出的误差函数对每一个参数求导&#xff0c;输出层可以直接求出&#xff0c;非输出层则有链式法则求导。这里以上图5层神经网络为例进行说明。 一 符号说明&#xff1a; 1)这里使用激活函数为sigmoid函数&#xff1a; &#xff08;1&#xff09; 对sigmoid函数…

字典生成工具_CANOpen系列教程09_CANOpen对象字典

说明&#xff1a;本文原创作者『strongerHuang』首发于微信公众号『嵌入式专栏』&#xff0c;同时也更新在我的个人网站&#xff1a;EmbeddedDevelop标签&#xff1a;CAN、 CANOpen、 CanFestival一、写在前面上一篇文章主要是引导大家学习CANOpen协议通信接口的相关内容。通信…

Java命令行界面(第4部分):命令行

我在Java中进行命令行解析的系列的第四部分介绍了Commandline &#xff0c;它被描述为 “用于解析命令行参数的Java库”&#xff0c;它“基于使用注释从命令行参数到对象的映射”。 像以前介绍的args4j和jbock一样&#xff0c; Commandline使用注释来提供潜在命令行选项的“定…

Dijkstra 计算两地间的最短距离

这里使用Dijkstra(戴克斯特拉)算法&#xff0c;该算法起始点实际计算出到任一点的距离&#xff0c;计算两城市间的距离实际是一个副产物&#xff0c;所有一下图为例来说明&#xff0c;该图为无向图&#xff0c;顶点间所标数字即为两点之间的距离。 问题&#xff1a;求点D到点A的…

Sequence

题目链接&#xff1a;http://dsalgo.openjudge.cn/binarytree/12/ 总时间限制: 3000ms 内存限制: 65536kB描述给定m个数字序列&#xff0c;每个序列包含n个非负整数。我们从每一个序列中选取一个数字组成一个新的序列&#xff0c;显然一共可以构造出n^m个新序列。接下来我们对每…

hadooprbac_rbac权限管理系统的学习

RGBA学习在web开发项目中,有些网页是公开给所有人访问的,但有些网页涉及了某些数据表的增删改查的操作,而某些操作,特别是增改删的操作是一些敏感操作所有需要给不同的用户添加不同的权限&#xff0c;那么问题来了来了,我们需要怎样设置数据表来分配不同权限呢&#xff1f;很显…

api过滤器_了解播放过滤器API

api过滤器随着Play 2.1的热销&#xff0c;很多人开始询问新的Play过滤器API。 实际上&#xff0c;API非常简单&#xff1a; trait EssentialFilter {def apply(next: EssentialAction): EssentialAction }本质上&#xff0c;过滤器只是一个执行一个动作并返回另一个动作的函数…

HTML5中的webSocket、ajax、http

本文原链接&#xff1a;https://cloud.tencent.com/developer/article/1115496 https://cloud.tencent.com/developer/article/1193011 webSocket与ajax、web 一、webSocket与ajax 1、ajax2、webSocket二、webSocket API 1、事件2、方法3、属性4、常量三、webSocket与HTTP四、w…

动态规划,背包问题

背包问题模型&#xff0c;背包问题是一类整数规划问题&#xff0c;叙述如下&#xff1a;设有n件物品&#xff0c;并且第i件物品的重量为&#xff0c;其价值为&#xff0c;而背包能承受的总重量是&#xff0c;问应如何选择这些物品&#xff0c;才可以使背包中所装物品的价值最大…

routing zuul_尚学堂0131之zuul的相关概念及如何性能调优

采用服务名称指定路由方式1.1使用服务名称指定路由的规则是什么&#xff1f;1.2需改配置文件&#xff0c;将路由规则修改为使用服务名称路由。通过服务名, service-id为服务名zuul:routes:E-Book-Product-Provider:path: /suibian/**service-id: E-Book-Product-Provider路由的…

实时通信:使用Spring Boot实现Websocket

在开发Web应用程序时&#xff0c;有时我们需要将服务器事件下推到已连接的客户端。 但是&#xff0c;HTTP并非旨在允许这样做。 客户端打开与服务器的连接并请求数据。 服务器不会打开与客户端的连接并推送数据。 为了解决此限制&#xff0c;建立了一种轮询模式&#xff0c;其…

CUDA10.1配置VS2017

目录 一 CUDA 安装 二 CUDA环境变量配置 三 CUDA配置VS2017 一 CUDA 安装 1.1 CUDA下载 网址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 可以根据需要下载不同版本的CUDA安装包。 1.2 CUDA安装 1.2.1 双击下载的.exe文件安装 1.2.2 点击‘OK’ 1.2…

鸿蒙应用开发 常用组件与布局

简介 HarmonyOS ArkUI 提供了丰富多样的 UI 组件&#xff0c;您可以使用这些组件轻松地编写出更加丰富、漂亮的界面。在本篇 Codelab 中&#xff0c;您将通过一个简单的购物社交应用示例&#xff0c;学习如何使用常用的基础组件和容器组件。本示例主要包含&#xff1a;“登录”…

[数论]莫比乌斯反演1

索引 莫比乌斯反演1 定理莫比乌斯反演2 证明莫比乌斯反演3 技巧前言 本篇内容全部为定理&#xff0c;无证明 定义 莫比乌斯函数的符号为\(\mu\)&#xff0c;通俗的来讲\[ \mu(n) \left\{ \begin{matrix} 1 & n1\\ (-1)^k & n p_1p_2p_3\dots p_k\\ 0 & \text{其他…