2015-10-21 2 views
0

Я бы назвал эту функцию java другой функцией. Как я могу вручную запустить KeyEvent?Вызвать функцию, которая требует параметра KeyEvent

private void chooseItemByKey(KeyEvent event) 

Я попытался

 chooseItemByKey(new KeyEvent(null, null, null, null, null, KeyCode.DOWN, false, false, false, false)); 

сгореть KeyCode "вниз", но мой JRE сказал мне, что есть

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: argument type mismatch

метод нуждается в KeyEvent, потому что вызвать его также ключ, но мне нужно вызвать функцию, а также другую функцию, которая ударяет по клавише на моей клавиатуре. Любые идеи?

+0

Как он стоит, ваш вопрос не имеет смысла (вы хотите для вызова 'selectItemByKey', поэтому вы попытались вызвать' showAutocompleteListViewPartner' ???), и, кроме того, на самом деле не хватает информации (почему бы вам просто не сделать метод «KeyCode»?). Можете ли вы [изменить] вопрос, чтобы предоставить достаточную информацию? –

+0

Извините, что я скопировал вызов ложных методов. Конечно, мне нужно позвонить selectItemByKey – rockZ

+0

Можете ли вы опубликовать полную статистику стека? –

ответ

1

Просто реорганизовать его так называет другой метод, который принимает только KeyCode:

@FXML 
private void chooseItemByKey(KeyEvent event) { 
    chooseItemByKeyCode(event.getCode()); 
} 

private void chooseItemByKeyCode(KeyCode code) { 
    // essentially whatever you previously had in chooseItemByKey... 
} 

Тогда вам просто нужно позвонить

chooseItemByKeyCode(KeyCode.DOWN); 
+0

Спасибо. Это решение работало для меня! – rockZ

Смежные вопросы