使用Kotlin开发JavaFX的系列文章

Java桌面技术

Java桌面技术是Java语言的一个重要应用领域,它的主要特点是跨平台,即一次编写,到处运行。Java桌面技术主要包括JavaFX和Swing两种技术。

最开始的时候,在Swing之前,Java还有Applet和AWT两种技术,但是这两种技术已经被淘汰(?),所以这里不再介绍。

我以前用Swing还写过一些小程序,并且还有好多比较重要的软件都是Swing来实现的。比如JetBrains的IDEA,居然是用Swing写的。最开始从AWT转向Swing的时候,MFC还如日中天,跟Swing一比,真是弱爆了。但是现在,Swing也已经越来越少新的项目,取而代之的是JavaFX。

JavaFX

JavaFX是Java语言的一个GUI框架,它的特点是使用XML来描述界面,使用CSS来描述界面的样式,使用Java来描述界面的行为。JavaFX的界面描述语言叫做FXML,它是基于XML的,所以它的语法也是基于XML的。JavaFX的样式描述语言叫做CSS,它是基于CSS的,所以它的语法也是基于CSS的。JavaFX的行为描述语言叫做FXML,它是基于Java的,所以它的语法也是基于Java的。

JavaFX的界面描述语言FXML的语法如下:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
    <children>
        <Button fx:id="button" layoutX="126.0" layoutY="90.0" onAction="#handleButtonAction" text="Click Me!" />
        <Label fx:id="label" layoutX="126.0" layoutY="120.0" minHeight="16.0" minWidth="69.0" />
    </children>
</AnchorPane>

大概就是这样子的,JavaFX还提供了一个可视化的FXML编辑器Scence builder,可以在Eclipse或者IDEA中安装JavaFX插件之后使用。

用XML之后有一个好处,就是可以把界面风格和界面行为分离开来,这样子就可以专门有一个人负责界面的设计,另外一个人负责界面的行为。这样子说不定可以提高开发效率。

JavaFX的样式描述语言CSS的语法如下:

.button {
    -fx-background-color: #f00;
    -fx-text-fill: #fff;
}

JavaFX的行为描述语言FXML的语法如下:

public class Controller {
    @FXML
    private Button button;
    @FXML
    private Label label;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        label.setText("Hello World!");
    }
}

上面三个部分,JavaFX的界面描述语言FXML,样式描述语言CSS,行为描述语言FXML,这三个部分,共同构成了JavaFX的一个界面。

使用Kotlin开发JavaFX程序

当Kotlin语言出现之后,我就想着能不能用Kotlin来开发JavaFX程序,因为Kotlin语言的语法比Java语言的语法要简洁很多,所以用Kotlin来开发JavaFX程序,应该会更加简单一些。

采用Kotlin开发JavaFX程序,我一开始就放弃了FXML,因为我觉得FXML的语法太复杂。都怪以前上硕士的时候用XML做了几篇小论文,彻底败坏了我对XML的胃口。看到XML我就打退堂鼓。所以我采用了纯Kotlin的方式来开发JavaFX程序。

一边学Kotlin一边学JavaFX,顺便也写了若干篇博客,记录了一些学习笔记。

基本上把我觉得有用或者好玩的都写了一遍。

的确,用Kotlin来开发JavaFX还是非常顺滑的。

总结

  1. JavaFX是Java语言的一个GUI框架,它的特点是使用XML来描述界面,使用CSS来描述界面的样式,使用Java来描述界面的行为。
  2. 但是JavaFX用Kotlin来写,就不用XML了,也不用CSS了,只用Kotlin就可以了。
  3. Kotlin的工具使得JavaFX界面的编写变得非常顺滑。
posted @ 2023-07-21 16:54  大福是小强  阅读(28)  评论(0编辑  收藏  举报  来源