太久没有碰GUI相关的东西了,更新JDK的时候突然发现页面推广的JavaFx,于是花了一些时间学习看了一下,并且写了一个小工具。
JavaFx的前身应该是awt/swing吧,随着j2ee往b/s模式愈来愈强的发展,c/s GUI方面的已经被人遗忘了的感觉。
做桌面系统,估计大家会觉得C#之类的会强很多,其实看了JavaFx之后,发现也不弱啊。
首先还是用Eclipse来搞个Project,如下:
项目创建成功之后,自带了一些初始化的文件,环境需要使用JDK1.7+环境,我用的1.8.
一个Main.java文件,主要是应用的启动入口,加载布局文件Sample.fxml和样式文件application.css。 不错,JavaFx可以用css设置样式。比awt/swing进步许多。此外,还加入MVC模式,对应的创建了SampleController.java文件。
其中fxml文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="application.SampleController">
<center>
<TextArea fx:id="textarea" editable="false" prefHeight="1081.0"
prefWidth="831.0"
BorderPane.alignment="CENTER" />
</center>
<top>
<TextField fx:id="url_inputfield" BorderPane.alignment="CENTER" editable="false" />
</top>
<bottom>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Button fx:id="button_choose" mnemonicParsing="false" text="选择文件夹" onAction="#chooseDir"/>
<Button fx:id="button_change" mnemonicParsing="false" text="开始转换" onAction="#beginChange"/>
</children>
</HBox>
</bottom>
</BorderPane>
这个布局的话,可以用设计工具JavaFX Scene Builder 2.0来进行可视化操作,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/sb2download-2177776.html
不过里面有个问题,就是工具里面设置的控件id,需要手动修改为fx:id,不然不能在controller里面引用到。
项目开发完成之后,可以打包为exe, dmg, jar.....适合各种平台。
好了,我写的这个是针对Google Chrome浏览器的缓存文件批量转为mp4文件的工具,并不是很完善的,只能说can be used.....