GUI,我们还是喜欢web。如果javafx有像wpf的WebView2差不多的功能,我们就开心了scene builder中拖出一个webview,然后再回到代码中。发现<?import javafx.scene.web.*?>是红色的,我们缺少配置。于是在pom.xml中添加JavaFX依赖项
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>21</version>
</dependency>
我们把新加的webview的ID设置为:fx:id="webview1"。新加一个按钮:Button layoutX="593.0" layoutY="46.0" mnemonicParsing="false" onMouseClicked="#openclick3" text="打开网页"
然后在控制器中增加代码
@FXML
protected void openclick3()
{
// 获取WebEngine
WebEngine webEngine = webview1.getEngine();
// 加载URL
webEngine.load("http://www.hpctb.com/");
}
我们看到确实能打开页面
但是我们测试了,打开有的网站是显示不了的。打开有些网站,能显示,但是按钮点不动。打开我自己做的blazor或者vue的测试网站,也是不正常。
所以想用javafx来做套娃web的,估计要放弃了,javafx的开发者估计也不想让javafx成为套娃的工具。
既然无法用web,我们就在javafx自己做GUI。我自己尝试了一下,也还是能做的。查询和报表系统,很简单。如果想用web,其实可以单独做出去,重点是在用户输入的界面。我们一般还是用web多一些,用javafx或者qt或者electron的情况,其实是为了调用前端电脑的资源。比如调用读卡器或者一些非要在前端使用的dll文件。这些前端电脑资源调用,一般都是在用户操作的界面完成的,而不是在查询和统计的时侯。如果我们直接用javafx把录入界面做出来,事情就会变得非常的简单。非表格的录入,都非常简单,我们尝试了一下用得最多,也是最主要的“表格录入”模式。结果是可以用的,代码我就不贴了,我只是测试了一下,没做完。如果想做javafx项目,这些东西是需要自己去完成的。难度也不大,本人从来没用过java,也从来没学习过。但是有其他语言的开发经验,直接就可以做javafx项目。