JavaFX:如何制作可点击的文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX:如何制作可点击的文本相关的知识,希望对你有一定的参考价值。
我正在寻找一种简单的方法来实现这一目标。我无法在任何地方找到它,我已经尝试过API了。
所以我有一句话:
没有帐户?点击这里
我想把“here”这个词变成蓝色和可点击 - 进入一个按钮。怎么能实现这个?我只是在文本位置后面隐藏一个按钮吗?
答案
解
TextFlow flow = new TextFlow(
new Text("Don't have an account? "), new Hyperlink("Click here")
);
使用FlowPane(Java 7):
FlowPane flow = new FlowPane();
flow.getChildren().addAll(
new Text("Don't have an account? "), new Hyperlink("Click here")
);
样品
这是一个完整的可执行示例(Java 8):
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.text.*;
import javafx.stage.Modality;
import javafx.stage.*;
public class TextLink extends Application {
@Override
public void start(final Stage primaryStage) throws Exception {
Stage accountCreation = buildAccountCreationStage(primaryStage);
Hyperlink createAccount = buildCreateAccountLink(primaryStage, accountCreation);
TextFlow flow = new TextFlow(
new Text("Don't have an account? "), createAccount
);
flow.setPadding(new Insets(10));
primaryStage.setScene(new Scene(new Group(flow)));
primaryStage.show();
}
private Hyperlink buildCreateAccountLink(Stage primaryStage, Stage accountCreation) {
Hyperlink createAccount = new Hyperlink("Click here");
createAccount.setOnAction(event -> {
accountCreation.setX(primaryStage.getX());
accountCreation.setY(primaryStage.getY() + primaryStage.getHeight());
accountCreation.show();
});
return createAccount;
}
private Stage buildAccountCreationStage(Stage primaryStage) {
Stage accountCreation = new Stage(StageStyle.UTILITY);
accountCreation.initModality(Modality.WINDOW_MODAL);
accountCreation.initOwner(primaryStage);
accountCreation.setTitle("Create Account");
accountCreation.setScene(new Scene(new Label("<Account Creation Form Goes Here>"), 250, 50));
return accountCreation;
}
public static void main(String[] args) { launch(args); }
}
默认链接突出显示有点奇怪,周围有虚线边框(如果你希望你可以用css设置它以获得更好的东西,更类似于网络上的链接;即只是不同颜色的文字来表示访问和未访问的链接)。
在旁边
对于您的特定消息,您应该只是使“没有帐户”文本成为超链接并删除“单击此处”文本(as recommended by the w3c web standards body)。
有关
以上是关于JavaFX:如何制作可点击的文本的主要内容,如果未能解决你的问题,请参考以下文章
单击 JavaFX 突出显示 TextField 中的所有文本