Using JavaFX UI Controls 18 超链接

图 18-2 显示图片

展示的源代码:

import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.scene.*;import javafx.scene.control.*;import javafx.scene.image.Image;import javafx.scene.image.ImageView;import javafx.scene.layout.VBox;import javafx.stage.Stage; public class Main extends Application {final static String[] imageFiles = new String[]{"product.png","education.png","partners.png","support.png"};final static String[] captions = new String[]{"Products","Education","Partners","Support"};final ImageView selectedImage = new ImageView();final ScrollPane list = new ScrollPane();final Hyperlink[] hpls = new Hyperlink[captions.length];final Image[] images = new Image[imageFiles.length];public static void main(String[] args) {Application.launch(args);}@Overridepublic void start(Stage stage) {Scene scene = new Scene(new Group());stage.setTitle("Hyperlink Sample");stage.setWidth(300);stage.setHeight(200);selectedImage.setLayoutX(100);selectedImage.setLayoutY(10);for (int i = 0; i < captions.length; i++) {final Hyperlink hpl = hpls[i] = new Hyperlink(captions[i]);final Image image = images[i] = new Image(getClass().getResourceAsStream(imageFiles[i]));hpl.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {selectedImage.setImage(image);}});}final Button button = new Button("Refresh links");button.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {for (int i = 0; i < captions.length; i++) {hpls[i].setVisited(false);selectedImage.setImage(null);}}});VBox vbox = new VBox();vbox.getChildren().addAll(hpls);vbox.getChildren().add(button);vbox.setSpacing(5);((Group) scene.getRoot()).getChildren().addAll(vbox, selectedImage);stage.setScene(scene);stage.show();}}<em></em>

程序通过for循环创建4个

例的代码片段即实现了该任务。

例18-3刷新超链接

final Button button = new Button("Refresh links");button.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {for (int i = 0; i < captions.length; i++) {hpls[i].setVisited(false);selectedImage.setImage(null);}}});

图18-3未访问过的超链接

因为Hyperlink

HTML

例 18-4加载远程网页

import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.scene.*;import javafx.scene.control.*;import javafx.scene.image.Image;import javafx.scene.image.ImageView;import javafx.scene.layout.HBox;import javafx.scene.layout.Priority;import javafx.scene.layout.VBox;import javafx.scene.text.Font;import javafx.scene.web.WebEngine;import javafx.scene.web.WebView;import javafx.stage.Stage; public class Main extends Application {final static String[] imageFiles = new String[]{"product.png","education.png","partners.png","support.png"};final static String[] captions = new String[]{"Products","Education","Partners","Support"};final static String[] urls = new String[]{"","","",""};final ImageView selectedImage = new ImageView();final Hyperlink[] hpls = new Hyperlink[captions.length];final Image[] images = new Image[imageFiles.length];public static void main(String[] args){launch(args);}@Overridepublic void start(Stage stage) {VBox vbox = new VBox();Scene scene = new Scene(vbox);stage.setTitle("Hyperlink Sample");stage.setWidth(570);stage.setHeight(550);selectedImage.setLayoutX(100);selectedImage.setLayoutY(10);final WebView browser = new WebView();final WebEngine webEngine = browser.getEngine();for (int i = 0; i < captions.length; i++) {final Hyperlink hpl = hpls[i] = new Hyperlink(captions[i]);final Image image = images[i] =new Image(getClass().getResourceAsStream(imageFiles[i]));hpl.setGraphic(new ImageView (image));hpl.setFont(Font.font("Arial", 14));final String url = urls[i];hpl.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {webEngine.load(url);}});}HBox hbox = new HBox();hbox.getChildren().addAll(hpls);vbox.getChildren().addAll(hbox, browser);VBox.setVgrow(browser, Priority.ALWAYS);stage.setScene(scene);stage.show();}}

你能给的也只有这么多,在这个狭小的圈子里,

Using JavaFX UI Controls 18 超链接

相关文章:

你感兴趣的文章:

标签云: