使用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,顺便也写了若干篇博客,记录了一些学习笔记。

  1. Windows下的JavaFX桌面应用程序打包ABC
  2. Kotlin编写JavaFX的顺滑
  3. JavaFX动画:有趣的AnimationTimer
  4. JavaFX应用程序图标
  5. JavaFX专业开发者与业余开发者之间就差一个一个Icon packs
  6. JavaFX七巧板游戏:布局窗格Panes
  7. JavaFX七巧板游戏:布局控件
  8. JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
  9. Kotlin编写JavaFX的顺滑之数据控件(一)列表视图ListView
  10. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础应用
  11. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础深入浅出

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

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

总结

  1. JavaFX是Java语言的一个GUI框架,它的特点是使用XML来描述界面,使用CSS来描述界面的样式,使用Java来描述界面的行为。
  2. 但是JavaFX用Kotlin来写,就不用XML了,也不用CSS了,只用Kotlin就可以了。
  3. Kotlin的工具使得JavaFX界面的编写变得非常顺滑。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值