我试图获取KeyEvent的源代码(在我的例子中是TextField)。我可以使用打印字符串e.getSource().toString()
的{{1}}将其打印出来但我只想获取TextField[id=molarMass, styleClass=text-input text-field]
所以我也可以将我的方法用于其他TextFields,而不仅仅是这个。
代码:
TextFieldID
每次按下某个键时,TextField都会使用 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
而不是TextFieldID
答案 0 :(得分:0)
您可以将源转换为节点并从那里获取ID。
例如:
Node n = (Node)event.getSource();
String id = n.getId();
//Do your logic....
如果你确定它只会那样,你可以投射到TextField ......