import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.OverrunStyle;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class BindTooltipToFocusEvent extends Application {
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("How to bind tooltip to focus event?");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(5);
grid.setPadding(new Insets(25, 25, 25, 25));
grid.add(new Label("Email"), 0, 0);
grid.add(new TextField(), 0, 1);
grid.add(new Label("Password"), 0, 2);
Tooltip tooltip = new Tooltip("Paswords must contain 1-50 characters, etc...");
tooltip.setWrapText(true);
tooltip.setTextOverrun(OverrunStyle.ELLIPSIS);
PasswordField pf = new PasswordField();
pf.setPromptText("Password");
pf.setTooltip(tooltip);
grid.add(pf, 0, 3);
stage.setScene(new Scene(grid, 300, 275));
stage.sizeToScene();
stage.show();
}
public static void main(String[] args) { launch(); }
}
提供されているサンプル アプリケーションを実行すると、マウス ホバー イベントでツールチップを表示する Java FX のデフォルトのツールチップ動作が示されます。パスワード フィールドに 1 ~ 2 秒ホバーすると、ツールチップが表示されます。ユーザーがマウスでフィールド上にホバーしている間ではなく、ユーザーがパスワードを入力している間、ツールチップを表示したいと思います。
パスワード フィールドにフォーカスがあるときにツールチップが表示されるように、この動作をどのように変更できますか?
ユーザー インターフェイスに別のラベルを追加し、パスワード フィールドにフォーカスがあるときにその可視性プロパティを変更できることはわかっています。この質問は、使用例の回避策を求めているわけではありません。親フィールドにフォーカスがあるときにツールチップを表示する方法を具体的に知りたいです。