激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - JavaFX實現UI美觀效果代碼實例

JavaFX實現UI美觀效果代碼實例

2020-07-31 15:03HiIT青年 Java教程

這篇文章主要介紹了JavaFX實現UI美觀效果代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

1. JavaFX CSS語法

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.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);
}

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

比如:

?
1
2
3
4
5
6
7
8
/* 在CSS中,樣式是這樣寫的 */
min-height: 46;
max-height: 46;
font-size: 18;
/* 而在JavaFX中CSS必須這樣寫 */
-fx-min-height: 46;
-fx-max-height: 46;
-fx-font-size: 18;

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

2. 用CSS美化控件

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

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

效果圖:

JavaFX實現UI美觀效果代碼實例

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

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

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

首先編程css樣式

在AppUI.fxml相同的目錄下創建AppUI.css,內容如下:

?
1
2
3
4
5
6
.go {
 -fx-text-fill: white;
 -fx-min-height: 30;
 -fx-min-width: 80;
 -fx-background-color: #337ab7;
}

修改FXML引入樣式

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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,另外如果需要指定多個class樣式的話,應該采用styleClass子元素,而不是styleClass屬性。

修改maven pom.xml

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

?
1
2
3
4
5
6
7
8
9
10
11
<build>
 <resources>
  <resource>
   <directory>src/main/java</directory>
   <includes>
    <include>**/*.fxml</include>
    <include>**/*.css</include>
   </includes>
  </resource>
 </resources>
</build>

在實際開發中,可以使用現有的開源框架來美化JavaFX應用,沒有自己從零開始編寫自己的樣式。
這里推薦兩個JavaFX CSS開源框架:

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

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

首先引入maven依賴

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

?
1
2
3
4
5
<dependency>
 <groupId>org.kordamp.bootstrapfx</groupId>
 <artifactId>bootstrapfx-core</artifactId>
 <version>0.2.4</version>
</dependency>

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

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

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

在fxml中使用bootstrapfx樣式

?
1
2
3
4
5
6
<Button text="Go.">
 <styleClass>
  <String fx:value="btn"/>
  <String fx:value="btn-success"/>
 </styleClass>
</Button>

效果圖:

JavaFX實現UI美觀效果代碼實例

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

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

效果圖1:

JavaFX實現UI美觀效果代碼實例

效果圖2:

JavaFX實現UI美觀效果代碼實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/itqn/p/13381560.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美极品免费 | 午夜男人在线观看 | 中文字幕亚洲一区二区三区 | 国产亚洲精品综合一区91555 | 极品大长腿啪啪高潮露脸 | 黄色一级片在线免费观看 | www.com国产精品 | 久久国产精品久久久久久电车 | 久久日韩在线 | 久久久久久久久久久久久久久久久久 | 国产妇女乱码一区二区三区 | av免费大全| 亚洲视频成人在线 | 五月激情久久 | 亚洲国产精品久久久久久久久 | 粉色视频污 | 亚洲综合中文 | 精品在线一区二区三区 | jj视频在线播放 | 成人免费网视频 | 黄色免费网站在线播放 | 亚洲午夜久久久精品一区二区三区 | 国产精品嘿咻嘿咻在线播放 | 色污视频| 午夜影院操 | 55夜色66夜色国产精品视频 | 日本道中文字幕 | 视频一区二区三区在线播放 | 国产精品久久久久久久久久东京 | 成av人在线观看 | 国产精品成人免费一区久久羞羞 | 黄色免费不卡视频 | 国产亚洲精品视频中文字幕 | 一级黄色免费观看视频 | 国产精品免费一区二区三区四区 | 中文字幕一区在线观看视频 | 99影视在线视频免费观看 | 成人黄色在线免费观看 | 国产国语毛片 | 亚洲影院在线播放 | 蜜桃传免费看片www 日本一区二区三区视频在线 |