在您的Javafx项目中使用SASS
#java #scss #javafx

sass是一个美丽的工具 - 在建造网络时,您的生活变得更加轻松。这就是为什么我也想在我正在从事的Javafx项目中使用它。

如果您不熟悉它:SASS是CSS的Prepropersor,可以看作是CSS的超集。它提供功能等功能(称为混合),变量和其他有用的功能。 SASS文件可以以.sass(旧的,弃用的方式)或.scss(现代首选方法)结束。但是,在能够在项目中使用文件之前,需要将它们编译为普通CSS。 This video提供了快速简便的介绍。

编译到CSS的方法

SASS编译器最初是用Ruby编写的,但是,有一个用Dart编写的现代版本。您如何编译到CSS并不重要 - 唯一重要的是,CSS文件包含在您的应用程序构建中。

使用Maven Build-Plugin

第一种方法是配置Maven(或您正在使用的任何构建工具),以便在编译整个Java程序时将文件编译为CSS。有多个图书馆,最好的库(至少从我的角度来看)是this one。还有其他项目,尝试做同样的事情,如本blog post中所述。
但是,这种方法存在问题:为了使场景构建器正常工作,实际上需要在运行时编译CSS。这意味着,一旦我们对文件进行更改,就必须即时发生。

在Intellij的帮助下编译

我们可以让我们的IDE为我们做这项工作:首先,我们需要使用Choco,Homebrew或NPM将SASS编译器安装到本地机器上:

# Homebrew
brew install sass/sass/sass

# NPM
sudo npm install -g sass

# Chocolatey
choco install sass

接下来,让启动Intellij并从设置窗格安装这两个插件:

之后,转到首选项
工具``文件观察者,单击+icon'',然后选择“ scss”。您面对的对话框看起来像这样:

Image description

单击“好的”:现在,每次我们进行更改时,它们都会自动编译为标准CSS。

现在剩下要做的就是配置我们的项目,因此选择了右文件。您的结构应该看起来像这样:

src/
├─ main/
│ ├─ java/
│ │ ├─ com.company.example/
│ │ │ ├─ HelloApplication.java
│ │ │ ├─ HelloController.java
│ ├─ resources/
│ │ ├─ com.company.example/
│ │ │ ├─ META-INF/
│ │ │ │ ├─ MANIFEST.MF
│ │ │ ├─ sass/
│ │ │ │ ├─ _colors.scss
│ │ │ │ ├─ style.scss
│ │ │ ├─ hello-view.fxml

style.css将自动生成style.scss内部(这意味着style.scss将成为一个文件夹):

style.scss/
├─ style.css
├─ style.css.map

最后要做的是引用.fxml的CSS文件。为此,转到顶级元素(例如边框窗格),然后将stylesheets="@sass/style.css"附加到它。

那就是这样!您现在可以使用Sass使Javafxs CSS减轻了痛苦。