2015-12-28 69 views
0

我想獲得我的KeyEvent的源(在我的情況下是一個TextField)。我可以通過使用e.getSource().toString()打印出來,它打印字符串TextField[id=molarMass, styleClass=text-input text-field]但我只想獲得TextFieldID,所以我可以使用我的方法來處理其他TextField,而不僅僅是這個。來自KeyEvent的Javafx getSource()

代碼:

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而不是在代碼中使用molarMass

回答

0

,就可以把源到節點並從那裏獲取ID。

例如:

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

//Do your logic.... 

或者你可以轉換爲文本字段,如果你確信它只會是....

+0

謝謝。這實際上比我想象的要容易得多。 最簡單的解決方案: 'TextField origin =((TextField)e.getSource());' – fLLah