来自 KeyEvent 的 Javafx getSource()
Javafx getSource() from KeyEvent
我正在尝试获取我的 KeyEvent 的来源(在我的例子中是一个 TextField)。我可以使用 e.getSource().toString()
来打印它,它打印字符串 TextField[id=molarMass, styleClass=text-input text-field]
但我只想得到 TextFieldID
所以我也可以将我的方法用于其他 TextFields 而不仅仅是这个。
代码:
public void correctTextField(KeyEvent e) {
System.out.println(e.getSource().toString());
if (e.getCode() != KeyCode.BACK_SPACE && !e.getCode().isArrowKey()) {
int caretPosition = molarMass.getCaretPosition();
molarMass.setText(DataUse.testForOnlyNumbers(molarMass.getText()));
molarMass.positionCaret(caretPosition);
}
}
correctTextField
每次按下一个键时都会被 TextField 使用,我想使用特定的 TextFieldID
而不是在代码
中使用 molarMass
您可以将源转换为节点并从那里获取 ID。
例如:
Node n = (Node)event.getSource();
String id = n.getId();
//Do your logic....
或者,如果您确定它只会是那样的话,您可以转换为 TextField....
我正在尝试获取我的 KeyEvent 的来源(在我的例子中是一个 TextField)。我可以使用 e.getSource().toString()
来打印它,它打印字符串 TextField[id=molarMass, styleClass=text-input text-field]
但我只想得到 TextFieldID
所以我也可以将我的方法用于其他 TextFields 而不仅仅是这个。
代码:
public void correctTextField(KeyEvent e) {
System.out.println(e.getSource().toString());
if (e.getCode() != KeyCode.BACK_SPACE && !e.getCode().isArrowKey()) {
int caretPosition = molarMass.getCaretPosition();
molarMass.setText(DataUse.testForOnlyNumbers(molarMass.getText()));
molarMass.positionCaret(caretPosition);
}
}
correctTextField
每次按下一个键时都会被 TextField 使用,我想使用特定的 TextFieldID
而不是在代码
molarMass
您可以将源转换为节点并从那里获取 ID。
例如:
Node n = (Node)event.getSource();
String id = n.getId();
//Do your logic....
或者,如果您确定它只会是那样的话,您可以转换为 TextField....