0

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 디렉토리의 프로젝트 클래스에있는 코드로 바꿨다.

어떤 도움이 정말 감사하겠습니다 당신에게

+1

binOneContentsLabel에 대한 선언은 어디에 있고 컨트롤러 클래스에있는 fx : id는이를 확인하십시오. 정적이지 않은지 확인하십시오. – brian

답변

0

감사 브라이언 감사합니다! 나는 그것이 어떤 이유로 정적으로 설정되었다는 것을 발견했다. 나는 그것을 바꿨고 이제는 잘 동작한다.

관련 문제