게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금] 자바 텍스트필드 + getText 질문 있습니다
게시물ID : programmer_6047짧은주소 복사하기
작성자 : 안녕나는고수
추천 : 0
조회수 : 1687회
댓글수 : 2개
등록시간 : 2014/10/18 15:29:14
옵션
  • 본인삭제금지
과제중인데.. 막히는부분이있어서 질문드립니다

볼드부분이 질문의 부분인데요

텍스트 필드를 비우고는 연산이안되서 
java.lang.NumberFormatException: empty String

이런에러가나오고

저렇게 텍스트 필드를 숫자로지정해놓고하면 다른숫자를 넣어도 저 200000의 숫자로 돌아갑니다

텍스트필드에 원하는 숫자를 넣고 그걸로 연산을 할수있는방법을 알고싶습니다 도와주세요
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Assignment09;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 *
 * @author 
 */
public class Assignment09 extends JFrame implements ItemListener{

    JComboBox RnT = new JComboBox();
    FlowLayout flow = new FlowLayout();
    JLabel Rnt = new JLabel("Rate and Term");
    JLabel princi = new JLabel("Principal");
    JTextField principal = new JTextField(15);
    JTextField monthlyPayment = new JTextField(15);
    double[] Rate = {5.35, 5.5,5.75};
    double[] Term = {7, 15, 30};
    double mp = 0.0;
    
    double rate, term, pri;
   
    String output;
    
    public Assignment09()
    {
        super("calculate monthly payment");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel pane = new JPanel();
        pane.setLayout(flow);
        RnT.addItemListener(this);
        pane.add(Rnt);
        RnT.addItem("7 years, 5.35 % rate");
        RnT.addItem("15 years, 5.5% rate");
        RnT.addItem("30 years 5.75% rate");
        pane.add(RnT);
        pane.add(princi);
        pane.add(principal);
        
        pane.add(monthlyPayment);
        setContentPane(pane);
    }
    public static void main(String[] args)
    {
        JFrame Frame = new Assignment09();
        Frame.setSize(500,500);
        Frame.setVisible(true);
        
    }
    
    public void itemStateChanged(ItemEvent list) {
        
        int num;
        
        Object source = list.getSource(); 
        principal.setText("200000");
        String p = principal.getText();
        double prin = Double.parseDouble(p);
        
        if( source == RnT)
        {
          
            num = RnT.getSelectedIndex();
            
            rate = Rate[num] /1200;
            term = Term[num] * 12;
            pri = prin*rate/(1.0-(Math.pow(rate+1, -term)));
            
            output = Double.toString(pri);
            
            monthlyPayment.setText(output);
               
        }
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호