我正在寻找一种在“悬停”时设置按钮文字的方法。
Logic:
if (button.isHover()){
button.setText("blabla");
}
css解决方案或代码解决方案都可以!
答案 0 :(得分:4)
您可以使用Bindings或向按钮的hoverProperty()
添加一个监听器。
<强>绑定强>
button.textProperty().bind(
Bindings.when(button.hoverProperty())
.then("Hovered")
.otherwise("Not Hovered"));
<强>监听强>
button.hoverProperty().addListener((ov, oldValue, newValue) -> {
if (newValue) {
button.setText("Hovered");
} else {
button.setText("Not Hovered");
}
});
<强> MCVE 强>
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
public void start(Stage stage) {
VBox pane = new VBox();
pane.setAlignment(Pos.CENTER);
Button button = new Button();
button.textProperty().bind(
Bindings.when(button.hoverProperty())
.then("Hovered")
.otherwise("Not Hovered"));
pane.getChildren().addAll(button);
Scene scene = new Scene(pane, 200, 200);
stage.setScene(scene);
stage.show();
}
}