JavaFX官方教程(六)之带有JavaFX CSS的花式表单
翻译自 带有JavaFX CSS的花式表单
本教程通过添加级联样式表(CSS)使您的JavaFX应用程序看起来很有吸引力。您开发设计,创建.css
文件并应用新样式。
在本教程中,您将获取一个使用标签,按钮和背景颜色的默认样式的登录表单,并通过一些简单的CSS修改将其转换为程式化的应用程序,如图5-1所示。
1、创建项目
如果您从一开始就按照入门指南进行操作,那么您已经创建了本教程所需的Login项目。如果没有,请通过右键单击Login.zip并将其保存到文件系统来下载Login项目。从zip文件中提取文件,然后在NetBeans IDE中打开该项目。
2、创建CSS文件
您的第一个任务是创建一个新的CSS文件,并将其保存在与应用程序主类相同的目录中。之后,您必须使JavaFX应用程序知道新添加的级联样式表。
在NetBeans IDE Projects窗口中,展开Login项目节点,然后展开Source Packages目录节点。
右键单击Source Packages目录下的login文件夹,选择New,然后选择Other。
在“新建文件”对话框中,选择“ 其他”,然后选择“ 层叠样式表”,并单击“ 下一步”。
在“文件名”文本字段中输入“ 登录”,并确保“文件夹”文本字段值为
src\login
。单击完成。
在
Login.java
文件中,通过包含下面以粗体显示的代码行来初始化类的style sheets
变量Scene
以指向级联样式表,以便它如示例5-1所示。示例5-1初始化样式表变量
Scene scene = new Scene(grid, 300, 275); primaryStage.setScene(scene); scene.getStylesheets().add(Login.class.getResource("Login.css").toExternalForm()); primaryStage.show();
此代码
src\login
在NetBeans项目的目录中查找样式表。
3、添加背景图像
背景图片有助于使您的表单更具吸引力。在本教程中,您将添加一个带有亚麻纹理的灰色背景。
首先,通过右键单击background.jpg图像并将其保存到src\login
Login NetBeans项目的文件夹中来下载背景图像。
现在,将background-image
属性的代码添加到CSS文件中。请记住,路径是相对于样式表的。因此,在示例5-2的代码中,background.jpg
映像与Login.css
文件位于同一目录中。
.root {-fx-background-image: url("background.jpg");
}
4、标签样式
下一个要增强的控件是标签。您将使用.label
样式类,这意味着样式将影响表单中的所有标签。代码在例5-3中。
.label {-fx-font-size: 12px;-fx-font-weight: bold;-fx-text-fill: #333333;-fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 );
}
5、风格文字
现在,Text
在表单中的两个对象上创建一些特殊效果:scenetitle
包括文本Welcome
,以及actiontarget
用户按下登录按钮时返回的文本。您可以将不同的样式Text
应用于以各种方式使用的对象。
在该
Login.java
文件中,删除以下代码行,这些代码行定义当前为文本对象设置的内联样式:scenetitle.setFont(Font.font(”Tahoma”, FontWeight.NORMAL, 20));
actiontarget.setFill(Color.FIREBRICK);
通过内联样式切换到CSS,您可以将设计与内容分开。这种方法使设计人员更容易控制样式而无需修改内容。
使用
setID()
Node类的方法为每个文本节点创建一个ID :以粗体添加以下行,使它们如示例5-4所示。示例5-4为文本节点创建ID
... Text scenetitle = new Text("Welcome"); scenetitle.setId("welcome-text"); ... ... grid.add(actiontarget, 1, 6); actiontarget.setId("actiontarget"); ..
在
Login.css
文件中,定义welcome-text
和actiontarget
ID 的样式属性。对于样式名称,请使用前面带有数字符号(#)的ID,如例5-5所示。例5-5文本效果
#welcome-text {-fx-font-size: 32px;-fx-font-family: "Arial Black";-fx-fill: #818181;-fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 ); } #actiontarget {-fx-fill: FIREBRICK;-fx-font-weight: bold;-fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 ); }
欢迎文本的大小增加到32磅,字体更改为Arial Black。文本填充颜色设置为深灰色(#818181),并应用内部阴影效果,从而创建浮雕效果。您可以通过将文本填充颜色更改为背景的较暗版本,将内部阴影应用于任何颜色。有关内部阴影属性参数的详细信息,请参阅“ JavaFX CSS参考指南”中有关效果的部分。
样式定义actiontarget
与您之前看到的类似。
图5-4显示了两个Text
对象的字体更改和阴影效果。
6、按钮样式
下一步是设置按钮的样式,使用户将鼠标悬停在按钮上时更改样式。此更改将为用户提供按钮是交互式的指示,这是一种标准设计实践。
首先,通过添加例5-6中的代码为按钮的初始状态创建样式。此代码使用.button
样式类选择器,这样如果您在以后向表单添加按钮,则新按钮也将使用此样式。
.button {-fx-text-fill: white;-fx-font-family: "Arial Narrow";-fx-font-weight: bold;-fx-background-color: linear-gradient(#61a2b1, #2A5058);-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 );
}
现在,当用户将鼠标悬停在按钮上时,创建略微不同的外观。您可以使用悬停伪类来执行此操作。伪类包括类的选择器和由冒号(:)分隔的状态名称,如例5-7所示。
.button:hover {-fx-background-color: linear-gradient(#2A5058, #61a2b1);
}
图5-5显示了按钮的初始和悬停状态,其中包含新的蓝灰色背景和白色粗体文本。
7、从这往哪儿走
以下是您可以尝试的一些事项:
看看你可以用CSS创建什么。一些文档,可以帮助你剥皮的JavaFX应用程序使用CSS,用CSS样式图表,以及JavaFX的CSS参考指南。使用CSS进行Skinning和JavaFX Scene Builder用户指南的CSS Analyzer部分还提供了有关如何使用JavaFX Scene Builder工具为JavaFX FXML布局设置外观的信息。
见造型FX按钮用CSS为如何创建使用CSS普通按钮样式的例子。
JavaFX官方教程(六)之带有JavaFX CSS的花式表单相关推荐
- JavaFX官方教程(七)之使用FXML创建用户界面
翻译自 使用FXML创建用户界面 本教程展示了使用JavaFX FXML的好处,JavaFX FXML是一种基于XML的语言,它提供了构建与代码的应用程序逻辑分开的用户界面的结构. 如果您从一开始就 ...
- jQuery(六)插件、Validate验证提交表单、submitHandler、更改错误信息显示的位置、required、Validator、内置验证方式表、validate ()的可选项汇总
jQuery(六)插件.Validate验证提交表单.submitHandler.更改错误信息显示的位置.required.Validator.内置验证方式表.validate ()的可选项汇总 文章 ...
- html5发光动态效果图,一款带有发光动画的HTML5表单
今天给大家秀一款带有发光动画的HTML5表单,挺酷的,效果图如下: 当表单获取焦点时,表单四周就会呈现出发光动画的效果,并不断地进行颜色渐变:当表单失去焦点时,停止发光.其中颜色渐变的动画只有基于we ...
- CSS基础——CSS 列表和表单【学习笔记】
CSS 列表和表单 1. 列表标签(重点) 表格是用来显示数据的,列表是用来布局的. 概念: 容器里面装载着结构,样式一致的文字或图表的一种形式,叫列表 特点: 列表最大的特点就是 整齐 .整洁. 有 ...
- [css] css怎么更改表单的单选框或下拉框的默认样式?
[css] css怎么更改表单的单选框或下拉框的默认样式? 下拉框select可以通过appearance:none去除默认样式,然后进行自定义,但是option标签不能通过CSS自定义,所以最佳方案 ...
- Magento教程 13:在Magento中设定联络表单的收件信箱
Magento系统有预设的联络表单功能,位置是在您网站的网址/contacts Magento教程 13:在Magento中设定联络表单的收件信箱 如画面所见,提供简单的栏位让顾客可以透过表单寄送电子 ...
- css复选框表单,用CSS来美化表单——复选按钮篇
原标题:用CSS来美化表单--复选按钮篇 今天,我们来学习如何利用CSS美化checkbox复选框按钮,过程非常简单,本文主要是提供美化复选框按钮的方法,至于美化到何种程度还需大家自己去举一反三,发挥 ...
- JavaFX官方教程(一)之JavaFX概述
翻译自 JavaFX概述 本章概述了可以使用JavaFX API构建的应用程序类型,下载JavaFX库的位置以及有关正在交付的关键JavaFX功能的高级信息. JavaFX是一组图形和媒体包,使开发 ...
- JavaFX官方教程(五)之在JavaFX中创建表单
翻译自 在JavaFX中创建表单 在开发应用程序时,创建表单是一项常见活动.本教程将向您介绍屏幕布局的基础知识,如何将控件添加到布局窗格以及如何创建输入事件. 在本教程中,您将使用JavaFX构建如 ...
最新文章
- 让问答更自然 - 基于拷贝和检索机制的自然答案生成系统研究 | 论文访谈间 #02...
- android 屏幕切换监听
- Catboost原文解读
- 最少步数----深搜
- 实验二Step1-有序顺序表
- 标题: ZZ- Linux 系统裁减指南(LiPS)
- Web页面请求的历程(从应用层到链路层)
- 安卓编解码的分辨率问题
- 江苏省c语言二级刷题软件,计算机二级刷题软件
- 【基础知识】【模块介绍】8位8段数码管(74HC595)【硬件部分】
- 单核CPU使用多线程能否提高效率?
- 《三体》与《西部世界》
- WebApi 下载文件流?
- ubuntu 1204 server xp 硬盘安装
- shell 脚本实战 五
- Safari下弹窗被拦截 问题
- c语言程序设计作业心得,C语言程序设计实习心得体会
- 获取秒懂百科视频地址/获取百度百科视频地址
- 一 STM32时钟系统
- 「解析」Matplotlib 绘制折线图
热门文章
- java实用教程——组件及事件处理——布局的一个小实例
- java实用教程——组件及事件处理——DocumentEvent事件
- 算法设计与分析——回溯法——旅行售货员问题
- linux退出lftp命令,lftp命令使用
- 「软件项目管理」一文了解软件项目团队计划
- pip 设置超时时间_Python pip使用超时问题解决方案
- [C++11]可调用对象包装器function
- [Java基础]字符串中的编码解码问题
- 2019年第十届蓝桥杯国赛B组试题E-路径计数-dfs(坑题)
- 数据结构---Kruskal最小生成树