0
這可能嗎?我可以創建兩個具有不同字體樣式的超鏈接,但是如果將鼠標懸停在一個不會強調兩行文本的位置上,則看起來有點奇怪。JavaFX - 同一個超鏈接中的多種字體大小
我想要一個帶有較小「標題」文本的超鏈接,點擊文本的任何部分都應該做同樣的事情。
這可能嗎?我可以創建兩個具有不同字體樣式的超鏈接,但是如果將鼠標懸停在一個不會強調兩行文本的位置上,則看起來有點奇怪。JavaFX - 同一個超鏈接中的多種字體大小
我想要一個帶有較小「標題」文本的超鏈接,點擊文本的任何部分都應該做同樣的事情。
這是你在找什麼?
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
/**
*
* @author blj0011
*/
public class JavaFXApplication77 extends Application
{
@Override
public void start(Stage primaryStage)
{
Hyperlink link = new Hyperlink();
link.setText("http://example.com");
link.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("This link is clicked");
}
});
Hyperlink link2 = new Hyperlink();
link2.setText("http://example.com");
link2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("This link is clicked");
}
});
link.setOnMouseEntered((event) -> {
link2.underlineProperty().setValue(Boolean.TRUE);
});
link.setOnMouseExited((event) -> {
link2.underlineProperty().setValue(Boolean.FALSE);
});
VBox vbox = new VBox();
vbox.getChildren().addAll(link, link2);
StackPane root = new StackPane();
root.getChildren().add(vbox);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
launch(args);
}
}
這是一種方法。您可能可以將屬性雙向綁定。
希望能在同一個超鏈接中完成它(這可能是不可能的,除非它支持某種類型的「標記」),但這對於理想的行爲可能是一個充分的解決方法。 – User
帶有兩個超鏈接的VBox。 – Sedrick