나는 현재 다음과 같은 상황이 :NullPointerException이
내가 내 응용 프로그램이 사용자 입력을들을 만들고 싶어합니다. 첫째, 보이지 않는 TextField로이 작업을 수행했지만이 작업이 내 디자인을 망쳤으며 충분히 정교하지 않다고 생각했습니다. 그래서, 지금과 같이 내 상위 FlowPane에 onKeyPressed 이벤트 핸들러를 만들려고 노력하고 있어요 : 이것은 그냥 일반 텍스트와 숫자를 위해 노력하고 있습니다
public String input = "";
@FXML public void listenToInput(KeyEvent key) {
if (key.getCode() != KeyCode.ENTER) {
if (key.getCode().isDigitKey() || key.getCode().isLetterKey()) {
String newChar = key.getText();
input = input.concat(newChar);
}
}
else {
this.addScanToList(input);
input = "";
}
}
.
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at com.sun.javafx.scene.control.behavior.TableViewBehaviorBase.activate(TableViewBehaviorBase.java:915)
at com.sun.javafx.scene.control.behavior.TableViewBehaviorBase.callAction(TableViewBehaviorBase.java:179)
at com.sun.javafx.scene.control.behavior.BehaviorBase.callActionForEvent(BehaviorBase.java:218)
at com.sun.javafx.scene.control.behavior.TableViewBehaviorBase.callActionForEvent(TableViewBehaviorBase.java:208)
at com.sun.javafx.scene.control.behavior.BehaviorBase.lambda$new$75(BehaviorBase.java:135)
at com.sun.javafx.scene.control.behavior.BehaviorBase$$Lambda$146/1103773754.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$KeyHandler.process(Scene.java:3926)
at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3872)
at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2001)
at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2463)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$346(GlassViewEventHandler.java:228)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$208/996795822.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:406)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227)
at com.sun.glass.ui.View.handleKeyEvent(View.java:540)
at com.sun.glass.ui.View.notifyKey(View.java:950)
이미 생각 :하지만 최대한 빨리 누르는 나는 다음과 같은 오류 얻을를 입력, 포커스가 없습니다
- 상단 FlowPane,하지만 나는 그것이 집중했다, 그러나 결과가 없다.
- 내 listenToInput의 'else'가 입력되지 않기 때문에 enter 키가 인식되지 않습니다. 사실 일 수 있습니다.
편집 1 :
- FlowPane는 'setOnAction'을 가지고 있지 않기 때문에이 가를 눌러 입력 처리하는 방법을 알고하지 않습니다.
이 오류를 유발하는 원인을 아는 사람이 있습니까?
편집 2 : 나는 변경
는 onKeyReleased에 onKeyPressed 한 다음 내 코드가 제대로 실행,하지만 난 여전히 오류가 발생합니다. 어쩌면 그것을 아는 것이 도움이 될 것입니다.
편집 3 :
나는 ALT 대신 을 입력하여 목록에 검색을 추가했는데, 그것은 ENTER를 함께 할 수있는 뭔가가, 그래서 이것은 완벽하게 작동
답변 해 주셔서 감사합니다. FXML 파일에서 액션을 설정 했으므로 기본적으로 제안한 것과 동일하지 않습니까? – bashoogzaad