最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例

 更新時(shí)間:2020年07月31日 11:43:38   作者:HiIT青年  
這篇文章主要介紹了JavaFX實(shí)現(xiàn)UI美觀效果代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

相對(duì)于Swing來說,JavaFX在UI上改善了很多,不僅可以通過FXML來排版布局界面,同時(shí)也可以通過CSS樣式表來美化UI。
其實(shí)在開發(fā)JavaFX應(yīng)用的時(shí)候,可以將FXML看做是HTML,這樣跟CSS結(jié)合起來就跟開發(fā)WEB應(yīng)用差不多,只不過兩者之間的語法有點(diǎn)差異。

1. JavaFX CSS語法

JavaFX CSS樣式跟HTML中的CSS樣式很大程度上是相似的,比如class選擇器、組合選擇符、偽元素等。

.root {
 -fx-body-color : #F5F5F5;
 -fx-outer-border : #cecece;
}

VBox > .text-area.first {
 -fx-border-radius: 4 4 0 0;
 -fx-background-radius: 4 4 0 0;
}

.arrow-button:pressed {
 -fx-background-color: #e6e6e6;
 -fx-border-color: #acacac;
 -fx-effect: innershadow(gaussian, #adadad, 10, 0, 0, 3);
}

但有一點(diǎn)不同的是,JavaFX的CSS樣式語法都是以“-fx-”作為前綴。

比如:

/* 在CSS中,樣式是這樣寫的 */
min-height: 46;
max-height: 46;
font-size: 18;
/* 而在JavaFX中CSS必須這樣寫 */
-fx-min-height: 46;
-fx-max-height: 46;
-fx-font-size: 18;

其實(shí),如果了解CSS,想要編寫JavaFX的CSS難度并不是很大。

2. 用CSS美化控件

在沒有經(jīng)過CSS美化之前的JavaFX控件,其實(shí)跟Swing的控件差別不大,所以想要讓控件更加美觀還是要用CSS來修飾一下。
下面通過簡(jiǎn)單的樣式,來美化一下之前的按鈕:

<Button text="Go."
style="-fx-min-height: 30; -fx-min-width: 80;-fx-background-color: #337ab7;">
</Button>

效果圖:

可以看到使用CSS美化過的按鈕要比之前的按鈕好看多了。

3. 使用CSS樣式表美化控件

雖然在控件上加上CSS樣式可以達(dá)到美化控件的效果,但是跟寫CSS一樣,這樣的寫CSS樣式很不利于維護(hù)。
更好的方式的使用CSS文件統(tǒng)一維護(hù)樣式,然后通過class選擇器將樣式綁定在控件上。

首先編程css樣式

在AppUI.fxml相同的目錄下創(chuàng)建AppUI.css,內(nèi)容如下:

.go {
 -fx-text-fill: white;
 -fx-min-height: 30;
 -fx-min-width: 80;
 -fx-background-color: #337ab7;
}

修改FXML引入樣式

這里單獨(dú)為AppUI.fxml引入樣式,所以這需要在BorderPane的stylesheets屬性指定AppUI.css即可。

<BorderPane prefHeight="400.0" prefWidth="600.0"
      stylesheets="@AppUI.css" xmlns="http://javafx.com/javafx/8.0.172-ea"
      xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.itqn.gui.javafx.wx.ui.AppUI">
 <center>
  <VBox alignment="CENTER" spacing="10.0">
   <Label fx:id="text"/>
   <Button onAction="#click" text="Go." styleClass="go">
    <!--
    <styleClass>
     <String fx:value="btn"/>
     <String fx:value="btn-info"/>
    </styleClass>
     -->
   </Button>
  </VBox>
 </center>
</BorderPane>

注意這里使用的是styleClass,而不是style,另外如果需要指定多個(gè)class樣式的話,應(yīng)該采用styleClass子元素,而不是styleClass屬性。

修改maven pom.xml

跟之前一樣,要讓css編譯到classpath下面,需要在maven pom.xml配置include。

<build>
 <resources>
  <resource>
   <directory>src/main/java</directory>
   <includes>
    <include>**/*.fxml</include>
    <include>**/*.css</include>
   </includes>
  </resource>
 </resources>
</build>

在實(shí)際開發(fā)中,可以使用現(xiàn)有的開源框架來美化JavaFX應(yīng)用,沒有自己從零開始編寫自己的樣式。
這里推薦兩個(gè)JavaFX CSS開源框架:

  • bootstrapfx (MIT協(xié)議)
  • jbootx (沒有聲明開源協(xié)議)

bootstrapfx 目前最新的版本是0.2.4,使用它非常方便,只需要在maven引入依賴,然后在場(chǎng)景中添加對(duì)應(yīng)的樣式表即可。

首先引入maven依賴

修改maven pom.xml 加入如下依賴

<dependency>
 <groupId>org.kordamp.bootstrapfx</groupId>
 <artifactId>bootstrapfx-core</artifactId>
 <version>0.2.4</version>
</dependency>

然后在場(chǎng)景(scene)中引入樣式表

這里跟上面使用樣式表的方式有點(diǎn)不同,在scene引入樣式表后,所有scene里面的容器和控件都能使用。
而單獨(dú)為fxml引入樣式表,僅能在當(dāng)前fxml中使用。

stage.setScene(scene);
stage.getScene().getStylesheets().add("org/kordamp/bootstrapfx/bootstrapfx.css");
stage.show();

在fxml中使用bootstrapfx樣式

<Button text="Go.">
 <styleClass>
  <String fx:value="btn"/>
  <String fx:value="btn-success"/>
 </styleClass>
</Button>

效果圖:

另外:jbootx的使用方式也是一樣的,當(dāng)然也可以不引入依賴,直接將樣式表放在resources目錄,然后直接添加到場(chǎng)景中。

jbootx的使用示例這里就不展開了,下面展示一下jbootx的效果圖。

效果圖1:

效果圖2:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot熱部署class XX cannot be cast to class XX解決方案

    springboot熱部署class XX cannot be cast&nbs

    在使用DevTools進(jìn)行熱加載時(shí)遇到的`classXXcannotbecasttoclassXX`錯(cuò)誤,以及解決該問題的方法,通過在`resources`目錄下創(chuàng)建`META-INF/spring-devtools.properties`文件,并添加相應(yīng)的配置,可以有效解決此問題,使DevTools熱加載功能得以正常工作
    2025-02-02
  • spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志示例

    spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志示例

    這篇文章主要為大家介紹了spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì)

    java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)連連看游戲課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • java8 streamList轉(zhuǎn)換使用詳解

    java8 streamList轉(zhuǎn)換使用詳解

    這篇文章主要介紹了java8 streamList轉(zhuǎn)換使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBatch跳過異常和限制方式

    SpringBatch跳過異常和限制方式

    這篇文章主要介紹了SpringBatch跳過異常和限制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringSecurity自定義登錄接口的實(shí)現(xiàn)

    SpringSecurity自定義登錄接口的實(shí)現(xiàn)

    本文介紹了使用Spring Security實(shí)現(xiàn)自定義登錄接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢

    Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢

    網(wǎng)上找了不少負(fù)載均衡算法的資源,都不夠全面,后來自己結(jié)合了網(wǎng)上的一些算法實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java負(fù)載均衡算法實(shí)現(xiàn)之輪詢和加權(quán)輪詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 使用jar包反編譯形成pom工程

    使用jar包反編譯形成pom工程

    這篇文章主要介紹了使用jar包反編譯形成pom工程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • springboot項(xiàng)目讀取resources目錄下的文件的9種方式

    springboot項(xiàng)目讀取resources目錄下的文件的9種方式

    本文主要介紹了springboot項(xiàng)目讀取resources目錄下的文件的9種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • springboot如何忽略接收請(qǐng)求中的參數(shù)

    springboot如何忽略接收請(qǐng)求中的參數(shù)

    這篇文章主要介紹了springboot如何忽略接收請(qǐng)求中的參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論

文成县| 姚安县| 舒兰市| 内乡县| 达尔| 类乌齐县| 万年县| 安庆市| 通化县| 临朐县| 临清市| 交城县| 千阳县| 安吉县| 新安县| 兰坪| 公安县| 泰顺县| 奇台县| 凤翔县| 禹城市| 伊川县| 大名县| 钟山县| 砀山县| 当雄县| 闵行区| 墨竹工卡县| 澄城县| 日照市| 玛纳斯县| 马山县| 稷山县| 许昌县| 白城市| 凯里市| 神池县| 山东省| 龙门县| 常熟市| 邛崃市|