Netbeans 8 및 JDK 8로 업그레이드 한 후 "binOneDragDropped"메서드가 실행될 때이 줄에서 NullPointerException으로 인한 InvocationTargetException이 발생합니다. 방법은 라벨의 드래그에 할당) 자바 FX에 떨어 :NullPointerException에 의한 Java InvocationTargetException
이binOneContentsLabel.setText(binOneNewLabel);
는 방법 "binOneDragDropped는"클래스 FirstFitController에 다음과 같이 정의한다 :
이@FXML
private void binOneDragDropped(DragEvent event) {
// Create dragboard object & FXMLController object
Dragboard db = event.getDragboard();
// Make sure success is set to false
boolean success = false;
// Declare contents array list
ArrayList binOneContents = new ArrayList();
if (db.hasString()) {
// Add number to the bin (Array List) - if bin is not full
if (binOneHasSpace = false) {
mainControllerClass.showDialog("Bin is full.");
} else {
binOneContents.add(db.getString());
}
// Go through the array list
for (Object s : binOneContents) {
binOneNewLabel += s.toString() + ", ";
}
// Update bin contents label
binOneContentsLabel.setText(binOneNewLabel);
binOneTotalValue = calculateTotalValue(binOneNewLabel);
// Check if bin is full and set boolean to false + change bin colour to red if it is
if (binOneTotalValue >= Integer.parseInt(binSize)) {
// Set boolean to false
binOneHasSpace = false;
// Set bin colour to red to show user it's full
binOne.setFill(Color.RED);
}
// Set success boolean to true
success = true;
}
// Let source know whether string drop was successful
event.setDropCompleted(success);
// Stop further propagation
event.consume();
}
은 "calculateTotalValue"방법은 그냥 마약 od는 숫자 세트를 쉼표로 구분 된 문자열로 가져옵니다 (예 : "1, 2, 3, 4"), 그들을 분리하고 모두 합하여 합계를 얻습니다.
"binOneContentsLabel"은 단순히 JavaFX의 레이블 일뿐입니다. "binOneNewLabel"은 프로그램 시작시 초기화 된 String 객체입니다 (메서드 자체는 아닙니다).
나는이 모든 것을 테스트했으며 완벽하게 잘 돌아갔다. (그 목적은 레이블을 다른 레이블로 끌어서 첫 번째 레이블의 내용을 두 번째 레이블로 바꾸는 것이다.) 하지만 Netbeans를 제거하고 JDK 8 +를 다운로드 한 Netbeans 8을 설치하고 다시 설치 한 후에 프로젝트가 있었지만 일부 코드가 자동으로 변경되었습니다. 나는 (내가 업그레이드하기 직전에 만든) 백업을 사용하여 백업의 모든 클래스 코드를 복사하고 Netbeans 디렉토리의 프로젝트 클래스에있는 코드로 바꿨다.
어떤 도움이 정말 감사하겠습니다 당신에게
binOneContentsLabel에 대한 선언은 어디에 있고 컨트롤러 클래스에있는 fx : id는이를 확인하십시오. 정적이지 않은지 확인하십시오. – brian