コードにJavaFX TextFieldがあり、TextFieldのさまざまなイベントにアクションを追加したいと考えています。私は、TextFieldにテキストを書いた後Enterキーを押すとjavafxのテキストフィールドのonAction
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.event.EventType;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.text.Font;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import java.io.File;
import javafx.beans.value.ChangeListener;
/* Input from user */
weightTF = new TextField();
weightTF.setMaxWidth(36);
activeInsulinTF = new TextField();
activeInsulinTF.setMaxWidth(36);
VBox inputBox = new VBox();
inputBox.setFillWidth(false);
inputBox.setAlignment(Pos.CENTER);
inputBox.getChildren().add(weightTF);
inputBox.getChildren().add(activeInsulinTF);
inputBox.setSpacing(8);
// Add onAction for the texfields
menuHBox.getChildren().add(inputBox);
weightTF.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
double weight = Double.parseDouble(weightTF.getText());
Main.state.setWeight(weight);
System.out.println("Entered weight: " + weight);
}
});
今日、私は唯一のアクションを取得します。タブプレスを操作するためのアクションを追加するにはどうすればよいですか?また、マウスクリックでTextFieldがフォーカスを失ったときの対応方法は?
私はドキュメントを読んで、それは可能なはずです:誰かが私を助けることができる https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextField.html
希望:)
ありがとうございます!タブ用のコードがうまくいき、マウスのためにそれを解決する正しい方向に私を得ました:)。だから今それはすべて動作します。 – Hanna
@ハナ私はあなたの質問から、あなたが別のコントロールにフォーカスを移動するユーザーに応答する必要があると思っています。このような「低レベル」のイベントを使用することは、それを実行するための非常に堅牢な方法ではありません。代わりに、テキストフィールドの 'focusedProperty'でリスナーを登録する必要があります。 –