0

내 프로그램은 사용자가 얻고 자하는 제품의 수량, JFormatedTextField의 사용자 유형 및 documentListener의 사용자 유형에 따라 거래 가격을 인쇄하도록되어 있습니다.하지만 사용자 프로그램이 죽는 구멍을 잘못 말하십시오. 그 후 사용자가 빈 java.lang.IllegalStateException,에 "의"INT로 변환하는 컴파일러를 trows errase `JFormatedTextField DocumentListener는 java.lang.IllegalStateException을 발생시킵니다.

final JFormattedTextField quantityTextField = new JFormattedTextField((Integer) null); 
    //Check for changes. 
    quantityTextField.getDocument().addDocumentListener(new DocumentListener() { 
      @Override 
     public void changedUpdate(DocumentEvent e) { 
       if(quantityTextField.getText()!=null){ 
        totalPrice = (Integer.valueOf(quantityTextField.getText()).intValue())* unitaryPrice ; 
        priceToShow.setText(""+totalPrice); 
        }else{ 
         totalPrice=0; 
         quantityTextField.setText("0"); 
        } 
      } 
      @Override 
     public void removeUpdate(DocumentEvent e) { //Here is the problem the text on the field isnt equals to "" or null (when is empty) 
       if(quantityTextField.getText()!=null && quantityTextField.getText()!=""){ 
        totalPrice = (Integer.valueOf(cuantityTextField.getText()).intValue())* unitaryPrice ; 
        priceToShow.setText(""+totalPrice); 
       }else{ 
        totalPrice=0; 
        quantityTextField.setText("0"); 
       } 
      } 
      @Override 
     public void insertUpdate(DocumentEvent e) { 
       System.out.println("\n++ Insert"); 
       totalPrice = (Integer.valueOf(quantityTextField.getText()).intValue())* unitaryPrice ; 
       priceToShow.setText(""+totalPrice); 
      } 
    }); 

. 텍스트가 비어 있거나 null이고 총 가격을 0으로 설정하면 removeUpdate 수신기의 if 절이 처리해야하지만 조건은 도달하지 않으며 그 이유를 알지 못합니다.

도와주세요.

+1

을 당신은 '수 Documentalistener 내에서 텍스트 구성 요소를 수정하십시오. – MadProgrammer

답변

1

감싸고 SwingUtilities.invokeLater()

의 코드가 BTW quantityTextField.getText()!=" "작동하지 않습니다. 대신) (등호를 사용합니다.

1

또한 빈 공간을 다루는 피하기 위해 quantityTextField.getText().length() > 0을 사용할 수 있습니다.

관련 문제