과제중인데.. 막히는부분이있어서 질문드립니다
볼드부분이 질문의 부분인데요
텍스트 필드를 비우고는 연산이안되서
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.
}
}