javaFX实现桌面应用程序内嵌浏览器(二、功能实现)

一、收藏功能

这个比较简单,添加一个按钮,点击后获得当前tab页面中的内容,包括标题和网址,然后插入数据库中即可

//标题
tab.getText()
//网址
WebView view = (WebView) tab.getContent();
WebEngine engine = view.getEngine();
engine.getLocation()

二、历史记录

1、本想着在初始化界面中获得网页内容;或者是,添加一个监听器,在tab的属性发生改变时获取网页,但两种方法取到的值都为空,原因应该是新建了一个tab,但其中的内容还未初始化完成,即网页可能还没加载出来,所以没办法,投机取巧了一下。
2,点击“历史记录”按钮时,会遍历当前的全部tab,循环每一个tab,通过webview的history功能取出该tab界面的网页,并取出网页标题,网址,打开网页的时间,将这三个值插入数据库中

哦呼,问题解决了!
(允许我搁这儿感叹一下,太难了,暴风哭泣,折磨了好几天,做梦都是这玩意儿)
方法:添加两个监听器,一个是在tab属性变化时进行监听(但此时tab中的网页内容为空),另一个是当tab中的内容(我用的是tab的标题)改变时进行监听,后者是嵌入在前者里面的

//tp是tabpane类型的
第一个监听器
tp.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
             
                @Override
                public void changed(ObservableValue observable,Object oldValue, Object newValue) {
                //第二个监听器
                    tp.getSelectionModel().getSelectedItem().textProperty().addListener(new ChangeListener<String>() {
                        @Override
                        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                            Tab tab4 = tp.getSelectionModel().getSelectedItem();
                            System.out.println("监听打开tab4--" + tab4.getText());
                        }
                    });
                }
            });

为啥不能直接用第二个监听器?因为它只能监听一个tab中的改变,因此要配合使用才更香(划掉)

记录一下过程:
一开始在各种东西上添加监听器,包括selectedItemProperty()、getSelectedItem().textProperty()、tp.getTabs()、getSelectedItem().contentProperty()
要不是得到空值,要不就是只能得到某一个tab里的东西
然后发现,虽然是空值,但通过tab.idProperty发现tab是对应的,只是内容没加载完成而已

三、不感兴趣

同收藏功能

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kotlin是一种静态类型的编程语言,具有JVM的可移植性和Java的互操作性。Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的框架,它提供了快速开发应用程序所需的所有功能JavaFX是一个用于创建丰富客户端应用程序的框架,它提供了丰富的UI组件和布局管理器。 要使用Kotlin Spring Boot和JavaFX开发桌面应用程序,需要完成以下步骤: 1. 创建一个Kotlin Spring Boot项目。可以使用Spring Initializr创建项目,选择Kotlin和Spring Web依赖项。 2. 添加JavaFX依赖项。可以在pom.xml文件添加以下依赖项: ``` <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>16</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>16</version> </dependency> ``` 3. 创建一个JavaFX应用程序类。可以使用JavaFX的Application类作为应用程序的入口点。在这个类,可以创建UI组件,处理事件和管理应用程序的状态。以下是一个简单的JavaFX应用程序类的示例: ```kotlin import javafx.application.Application import javafx.fxml.FXMLLoader import javafx.scene.Parent import javafx.scene.Scene import javafx.stage.Stage class MyApplication : Application() { override fun start(primaryStage: Stage?) { val root: Parent = FXMLLoader.load(javaClass.getResource("/fxml/main.fxml")) primaryStage?.title = "My Application" primaryStage?.scene = Scene(root) primaryStage?.show() } companion object { @JvmStatic fun main(args: Array<String>) { launch(MyApplication::class.java, *args) } } } ``` 4. 创建FXML布局文件。FXML是一种XML格式的文件,用于定义UI组件和布局。可以使用Scene Builder或手动创建FXML文件。以下是一个简单的FXML布局文件的示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:id="root" prefHeight="400" prefWidth="600"> <Button fx:id="button" text="Click me" layoutX="250" layoutY="180" /> </AnchorPane> ``` 5. 在JavaFX应用程序加载FXML布局文件。可以使用FXMLLoader类加载FXML布局文件,并将其添加到应用程序的场景图。以下是一个示例: ```kotlin val root: Parent = FXMLLoader.load(javaClass.getResource("/fxml/main.fxml")) primaryStage?.title = "My Application" primaryStage?.scene = Scene(root) primaryStage?.show() ``` 6. 处理UI事件。可以在JavaFX应用程序添加事件处理程序,以响应UI组件的事件。以下是一个处理按钮单击事件的示例: ```kotlin button.setOnAction { event -> println("Button clicked!") } ``` 7. 使用Spring Boot管理应用程序的状态。可以使用Spring Boot的依赖注入和管理功能来管理应用程序的状态和依赖关系。可以在Spring Boot的配置类定义bean,然后在JavaFX应用程序使用它们。以下是一个简单的Spring Boot配置类的示例: ```kotlin @Configuration class AppConfig { @Bean fun myService(): MyService { return MyService() } } ``` 8. 在JavaFX应用程序使用Spring Boot的依赖注入功能。可以在JavaFX应用程序类的构造函数注入Spring Boot管理的bean。以下是一个示例: ```kotlin class MyApplication : Application() { @Autowired lateinit var myService: MyService // ... } ``` 这就是使用Kotlin Spring Boot和JavaFX开发桌面应用程序的基本步骤。当然,还有很多其他的细节和技术,可以根据需要进行学习和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值