DOC-03-20 超链接(HyperLink)

本章会谈谈HyperLink控件,它用于将文本格式化为超链接。

Hyperlink类是另一种Labeled控件。图20-1展示了默认实现的超链接的三种状态。

20–1 Hyperlink控件的三种状态

3-20-1 hyperlink-types

创建一个Hyperlink

例20-1的代码片段会产生一个超链接。

20–1 典型的Hyperlink

setText方法定义了定义了超链接的文本标题。因为Hyperlink类是Labeled类的一个扩展,所以你可以为超链接设置特定的字体和文本填充颜色。setOnAction方法会设置一个特定的动作(Action),该Action会在超链接被单击时调用,这与Button控件中此方法的功能类似。在例20-1中,此Action仅仅用于打印一行文本。然而在你的程序中,你可以用来完成更多的任务。

链接到本地内容

如图20-2所示的程序展现了本地文件夹中的图片。

20–2 查看图片

3-20-2 hyperlink-images

查阅此程序的源码,见例20-2。

20–2使用Hyperlink来查看图像

此程序在一个for循环中创建了四个Hyperlink对象。每个超链接都通过setOnAction定义了当用户点击时会触发的行为。在这种情况下,images数组中对应的图片会被设置给selectedImage变量。

当用户点击超链接时,超链接会变成被访问过的状态。你可以使用Hyperlink类的setVisited方法来刷新链接。例20-3中的代码片段展示了如何完成此任务。

20–3 刷新超链接

当“Refresh Links”按钮被点击时,它会将所有的超链接都设置为未被访问过的状态,如图20-3所示。

20–3 处于未被访问过的状态的超链接

3-20-3 hyperlink-refresh

由于Hyperlink类是Labeled类的一个扩展,因此你除了可以设定文本标题超链接,还可以设置图片超链接。下一节的程序将会同时使用文本和图片超链接,并且会加载远程的HTML页面。

链接到远程内容

在JavaFX应用程序中你可以通过在程序场景(Scene)中嵌入WebView浏览器来展示HTML内容。WebView组件提供了基本的Web页面浏览功能。它会对Web页面进行渲染并支持用户交互,例如链接导航、JavaScript指令执行等。

学习例20-4中的源码,它创建了四个带有文本和图片的超链接。当一个超链接被点击时,对应的值会作为URL传递给嵌入的浏览器。

20–4加载远程Web页面

 

与例20-2中的情况类似,超链接在for循环中被创建。在为每个超链接设置的Action中,将一个从urls数组中取出的URL传递给了表示内嵌浏览器的WebEngine对象。

当你编译并运行此程序,它将会产生如图20-4所示的窗体。

20–4 Oracle 官方网站加载页面

3-20-4 hyperlink-webview

相关的API文档

    · Hyperlink

    · Labeled

    · WebView

    · WebEngine

   

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/04/doc03_hyperlink/
百度已收录