2016-04-11 9 views
0

私のアプリケーションでは、すべての必須フィールドが入力されていない限り、 次のボタンが無効になっているマルチステップフォームウィザードがあります。無効なボタンのJavaFXキャプチャイベント

一部のフィールドでは、ディレクトリピッカーのように、ディレクトリが存在するかどうかを確認する などの追加の検証が必要です。

ユーザーエクスペリエンスを簡単にするために、ディレクトリテキストフィールドの隣に「無効なディレクトリ」ツールチップ を表示する必要があります。

無効なボタンをクリック/入力しようとすると、ツールチップが表示されます。 次のボタンをクリックしてください。

JavaFXの無効なボタンで実行されるイベントをキャプチャすることは可能ですか?

public void nextEntered(Event event) { 
    Button button = (Button)event.getSource(); 
    if(button.isDisabled()){ 
     validate(currentTab); 
    } 
} 
+0

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/Node.html#disabledProperty "無効なノードはマウスまたはキーイベントを受け取りません。"だから私はあなたの最善の策は、シーン内のマウスの位置を確認し、カーソルがボタンの境界を横切っている場合、ツールチップを生成することだと思います。 –

+0

選択した直後にディレクトリを検証しないのはなぜですか? InputFieldのTextPropertyにChangeListenerを追加することも、JavaFX FileChooserを使用する場合は、フォルダが存在するかどうかを直接確認することもできます。 – Rikan

+0

@el_chupacabraそれは私がやったことです、私はシーンにイベントリスナーを追加し、クリックの座標がボタンの境界内にあるかどうかをチェックします。より洗練されたソリューションがあれば疑問に思っていました。ありがとうございました。 – johndoe

答えて

0

私は同様の問題を抱えていました。ユーザーが無効なフィールドをマウスで操作したときに、無効なフィールドの値のツールチップを表示したかったのです。

無効なフィールドに空白のラベルを貼り付け、その上にマウスイベントを添付しました。

ボタンの場合、ボタンが有効になったときにダミーラベルのマウスを透明にして、ユーザーがボタンをクリックできるようにすることができます。

は(あなたも、ボタンのenabledプロパティにラベルのマウス透明度のプロパティをバインドすることができるかもしれませんが、私はよく分からない。)

私は、これは一年前に頼まれたが、多分それは他の誰かを助けることを知っています。

関連する問題