来自KeyEvent的Javafx getSource()

时间:2015-12-28 18:32:37

标签: java javafx keyevent

我试图获取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

1 个答案:

答案 0 :(得分:0)

您可以将源转换为节点并从那里获取ID。

例如:

Node n = (Node)event.getSource();
String id = n.getId();

//Do your logic....

如果你确定它只会那样,你可以投射到TextField ......